# Outline
一、論述
二、實作
# TL;DR
在國慶連假前,此系列文每天的發文時都會以最簡陳述為主,以求在繁忙的日常中,至少能先維持挑戰鐵人賽的進度,並且逐漸拓展思路與系列構成。預期會在國慶聯假好好的去修文。
在 Dockerize .NET Core Application 後,得到了一個包含建置後程式的 image,為了讓我們之後要部署時可以隨時存取這個 image 去建立一個個的 container 讓使用者訪問,所以我們今天就要來嘗試將他先推送到一個線上的 image registry。
先設定相關資訊
$ gcloud config set project ironman-2020-dotnetcore
$ gcloud config set compute/zone asia-east1
然後為這個服務建立對應的 Cluster
$ gcloud container clusters create ironman-cluster --num-nodes=1
Creating cluster dotnet-cluster in asia-east1... Cluster is being health-checked...done.
Created [https://container.googleapis.com/v1/projects/ironman-2019-dotnetcore/zones/asia-east1/clusters/dotnet-cluster].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/asia-east1/dotnet-cluster?project=ironman-2019-dotnetcore
kubeconfig entry generated for dotnet-cluster.
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
dotnet-cluster asia-east1 1.13.10-gke.0 104.199.177.18 n1-standard-1 1.13.10-gke.0 3 RUNNING
$ gcloud compute instances list
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
gke-dotnet-cluster-default-pool-0e411a2b-fmk0 asia-east1-a n1-standard-1 10.140.0.6 35.194.244.96 RUNNING
接著選擇在這個 Cluster 執行某個已經上傳到 Container Registry 的 image:
$ kubectl run ironman-2020-web --image=asia.gcr.io/ironman-2020-dotnetcore/dotnet-core-ci-cd-lab:1.0 --port 8080
最後將這個服務給公開到網際網路上:
$ kubectl expose deployment ironman-2020-web --type=LoadBalancer --port 80 --target-port 8080
如果要更新當前 Cluster 上運行服務的版本,可以這樣:
$ kubectl set image deployment ironman-2020-web ironman-2020-web=asia.gcr.io/ironman-2020-dotnetcore/dotnet-core-ci-cd-lab:1.1