前幾篇簡單地講完如何部署K8s應該會有點概念,你會發現要部署的AP並不會有任何程式碼出現在k8s.yml上,而是被包成image,今天就來說明image是怎麼一回事。
Docker
要了解image是什麼,就得先學會Docker,要學習到如何打包image,並上傳到倉庫Registry,Registry可以選擇Docker官方的Docker Hub、Google Artifact Registry、Azure Container Registry、Amazon Elastic Container Registry,自己建的話可以考慮GitLab Container Registry、VMware Harbor Registry。學好docker可以先閱讀《Docker — — 從入門到實踐》。
Google Artifact Registry
Artifact Registry是GCP的image倉庫,之前還有舊版叫Container Registry,不過官方建議使用新版的。
我們就來玩玩看Artifact Registry,到GCP找到Artifact Registry,點選建立存放區。

輸入名稱後,格式選擇Docker,區域我選asia-east1(台灣),並點選建立。


點進去後點選複製就就可以看到路徑,按複製起來,例如我的就是asia-east1-docker.pkg.dev/it-production-377006/nginx,asia-east1-docker.pkg.dev代表區域網域,it-production-377006代表專案ID,nginx代表存放區。

打包Image並上傳
我們打開Cloud Shell並輸入以下語法,取得Registry控制權
gcloud auth configure-docker asia-east1-docker.pkg.dev再來創立一個Dockerfile
FROM nginx:1.23.1
RUN echo "Hello World" > /usr/share/nginx/html/index.html再來執行打包與上傳的指令,這邊除了上面的存放區連結外,還要再加上image名稱與版本。
docker build . -t asia-east1-docker.pkg.dev/it-production-377006/nginx/a:1.0docker push asia-east1-docker.pkg.dev/it-production-377006/nginx/a:1.0到網頁上就會看到剛剛打包好的Image了

在GKE部署
在建立部署作業中輸入剛剛的image名稱,就可以部署起來服務。

結語
Google Artifact Registry用起來其實和Dockerhub差不多,而GKE整合自家的Registry更方便,不需要自行設定private repo的token。