快速上手 Anthos | GKE 叢集加入 Anthos - 部署 App 到 GKE

接續上回的內容,接著要將在本機端測好的程式部署到 GKE cluster,我們從建立 GCP GKE 的環境開始進行。

設定 GCP 環境 #

建立 GKE Cluster #

我的 project name 為 anthos-lab-373708 ,以下只要看到都請代換為你的專案名稱:

# 記得要先設定 project 與 zone,請自行代換
gcloud config set project **anthos-lab-373708**
gcloud config set compute/zone **asia-east1-a**

官方這份教學中提供的是基礎型的 N1 主機,我是覺得以這個 lab 來說有點效能過剩,調整成節費型 E2:

# asm-ready 為叢集名稱,可代換
gcloud container clusters create **asm-ready** \
--cluster-version latest \
--machine-type=**e2-standard-4** \
--num-nodes 4

以 gcloud 連線到 cluster #

gcloud container clusters get-credentials asm-ready [--zone asia-east1-a --project anthos-lab-373708]

應用程式容器化 #

設定 GCP repository 環境變數 #

# 在 shell export viarable,等等會用到
export PROJECT_ID="**anthos-lab-373708**"
export GCR_REPO="**asm-ready**"

打包成 images #

# 打包成 images
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1 ./server
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1 ./loadgen

推送至 Cloud Repository #

# 推到 Container Registry
docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1
docker push gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1

在 cluster 部署應用程式 #

context 切換 #

先確定一下是在哪個 kube config context:

若不是在這次範例創建的 cluster,需要進行切換:

# 自行代換 context name
k config use-context **gke_anthos-lab-373708_asia-east1-a_asm-ready**

使用 yaml 檔部署應用程式至 GKE cluster #

k apply -f server/server.yaml
k apply -f loadgen/loadgen.yaml

這兩個 yaml 檔做了什麼事? #

不難發現其實就是使用剛剛打包的 image,分別起 deployment 和 service。

helloservice #

helloserver 的 service 是以 type LoadBalance 的類型被部署,被有說明到是給 Istio (Service Mesh) 用的。
其實 Istio 這時候並沒有對它做事,將下來我們將會實際測試看看。

loadgen #

查看部署結果 #

這邊我使用 get pod 的方式看 yaml 是否已經被執行,其實他們都是 deployment。

也看到 service 成功 expose deployment:

到 GKE 的 Service & Ingress 頁面去查看外部 IP,試著以瀏覽器打開看看:

雖然應用程式部署成功了,但是做到這應該不難發現幾件事:

事實上,這個 cluster 甚至都還沒註冊到 Anthos Fleet,Service Mesh 相關的設定和先備條件也都沒有符合。

刪除 deploy 和 serivce #

以上是測試及先看過沒有 Anthos 管理、Service Mesh 遙測的應用程式,所以可以先刪除了:

k delete deploy --all
k delete service -all

下回要幹嘛 #

下篇文章是這系列最後一篇,也是最重要的部分,即是將 GKE Cluster 加入 Anthos 艦隊的 Lab,會需要一些 Service MeshIstio 的小知識,可以在這個部落格先簡單地惡補起來。

🙏🙏🙏

感謝你的閱讀 💖!
歡迎將本篇文章 分享 📋 出去,也歡迎到 我的 LinkedIn 聊聊。

Published