雲端容器化技術與資源調度

快速透過 Kubernetes 部署程式

建立 k8s Cluster (叢集)

  1. GCP Console —> Kubernetes Engine
  2. 如果還沒啟用免費額度,請先為你的 Google 帳號啟用免費額度
  3. 點選 建立叢集 按鈕
  4. 叢集名稱: standard-cluster-1
  5. 節點集區(Node Pool)設定:

    • 集區名稱: default-pool
    • 系列: N1
    • 機器類型: n1-standard-1
    • 數量: 1

將 hello-site 的 Image 發布上 Registry (GCR)

# 先透過 gcloud 指令讓 cloud shell 自動設定 docker registry 的登入資訊
$ gcloud auth configure-docker

# 將 Dockerfile 製成 Image, 並設定 tag 為: gcr.io/[PROJECT-ID]/hello-site:v1
$ docker build -t gcr.io/[PROJECT-ID]/hello-site:v1 .

# 確認 Image 有順利製作出來
$ docker images 

# 將 Image 上傳至 GCR
$ docker push gcr.io/[PROJECT-ID]/hello-site:v1

記得將 [PROJECT-ID] 處換為自己的實際 Project ID

最後,到 GCP Console 的 Container Registry 頁面,應該要能看到剛剛推上來的 Image。

部署 hello-site 容器進叢集內的 VM

  1. GCP Console —> Kubernetes Engine —> 工作負載
  2. 點選 部署 按鈕
  3. 現有容器映像檔 處,選擇剛剛上傳到 GCR 的 Image
  4. 設定:

    • 應用程式名稱: hello-site-app
    • 命名空間: default
    • 叢集: 選擇 standard-cluster-1

公開 hello-site

  1. GCP Console —> Kubernetes Engine —> 工作負載

  2. 點選剛剛建出來的 hello-site-app

  3. 點選 公開

  4. 通訊服對應設定:

    • 通訊埠: 80
    • 通訊協定: TCP
    • 服務類型: 負載平衡器
    • 服務名稱: hello-site-app-service

瀏覽網站

  1. GCP Console —> Kubernetes Engine —> Service 與 Ingress
  2. 點選剛剛建出來的 hello-site-service
  3. 找到 外部端點,這便是我們服務在網際網路上的 IP 與 Port

小結

k8s quick start