精通雲端容器化:在雲端部署容器的逐步指南

容器已經改變了我們部署、擴展和管理應用程式的方式,通過將程式碼和相依項目打包在一個標準化的單元中,使其能夠在任何環境中一致運行。當在雲端環境中使用時,容器提供:

  • 可攜性 跨開發、測試和生產環境。
  • 擴展性 可快速適應流量和需求。
  • 效率 與傳統虛擬機相比大幅減少開銷。

在本教程中,我們將全面介紹雲端容器化應用程式的設定,包括:

  1. 容器的基本知識以及為何它們很適合雲端。
  2. 建立一個 Docker 化應用程式。
  3. 部署容器到雲端供應商(以 Google Cloud Platform 為例)。
  4. 在雲端擴展和管理您的容器。

容器基礎知識:容器如何融入雲端工作流程

容器 封裝了運行應用程式所需的所有庫和相依項目。與傳統虛擬機不同,每個虛擬機都有一個作業系統,容器共享主機作業系統,因此它們輕巧且高效。

為何選擇雲端容器?

  • 快速啟動時間 意味著更快速地擴展以應對變化的流量。
  • 環境一致性確保程式碼在從開發人員的筆記本電腦到生產環境的行為一致。
  • 資源效率可在相同基礎設施上實現高密度部署。

雲端容器化的核心組件

  • 容器引擎:管理和運行容器(例如 Docker、containerd)。
  • Orchestration:確保應用程式的可靠性、擴展性和負載平衡(例如 Kubernetes、ECS)。
  • 註冊表:存儲容器映像以便在不同環境中訪問(例如 Docker Hub、GCR)。

建立 Docker 化應用程式

我們將從將一個簡單的 Node.js 應用程式容器化開始。

步驟 1:建立應用程式

1. 在專案文件夾中初始化一個 Node.js 專案:   

Shell

 

2. 建立一個基本的伺服器檔案,app.js

JavaScript

 

 

3. 將 Express 加入專案:    

Shell

 

步驟 2:建立一個 Dockerfile

這個 Dockerfile 指定了如何將應用程式打包成 Docker 容器。

Dockerfile

 

步驟 3:在本地建立並測試 Docker 映像

1. 建立 Docker 映像:   

Shell

 

2. 在本地運行容器:

Shell

 

 

3. 在瀏覽器中訪問 `http://localhost:3000`。您應該會看到 “你好,雲容器!” 的顯示。

將容器部署到 Google Cloud 平台(GCP)

在本節中,我們將將容器映像推送到 Google 容器註冊表(GCR),並部署到 Google Kubernetes 引擎(GKE)。

步驟 1:設置 GCP 專案

1. 創建一個 GCP 專案。轉到 [Google Cloud 控制台](https://console.cloud.google.com)並創建一個新專案。

2. 為您的專案啟用 Kubernetes 引擎和容器註冊表 API。

步驟 2:將映像推送到 Google 容器註冊表

1. 為 Google Cloud 標記 Docker 映像:

Shell

 

 

2. 將映像推送到 GCR:

Shell

 

步驟 3:創建 Kubernetes 集群

1. 初始化 GKE 集群:

Shell

 

   

2. 配置 kubectl 以連接到您的新集群:

Shell

 

步驟 4:將容器化應用部署到 GKE

1. 創建一個 k8s-deployment.yaml 文件來定義部署和服務:

YAML

 

2. 將應用部署到 GKE:

Shell

 

3. 獲取外部 IP 以訪問應用:

Shell

 

在 GKE 中調整和管理容器

步驟 1:調整部署的規模

使用以下命令來調整副本數量(例如,以處理更高流量):

Shell

 

GKE 將自動通過添加副本和分發負載來調整應用程序。

步驟 2:監控和管理日誌

1. 使用以下命令查看 Kubernetes 中特定 pod 的日誌:

Shell

 

2. 啟用 GKE 儀表板以監控 pod 狀態和資源使用情況,並以視覺方式管理部署。

結論:利用容器進行可擴展的雲端部署

本教程涵蓋:

  1. 使用 Docker 對 Node.js 應用程序進行容器化。
  2. 部署到 Google Kubernetes Engine(GKE)以進行可擴展的托管。
  3. 在雲端有效地管理和調整容器。

在雲端使用容器,您的應用程序將獲得可擴展性、可移植性和效率 — 確保它們能夠應對需求、快速適應並在各種環境中保持一致。

Source:
https://dzone.com/articles/a-step-by-step-guide-to-deploying-containers-in-the-cloud