GCP 佈建 Kubernetes 入門 - 使用 Kubernetes Engine
在這裡記錄如何從 GCP 建立起 Kubernetes Engine 建立起 cluster 流程:
建立專案及 Cluster
首先,在 Google cloud platform 的選單中,找到 Kubernetes Engine,預設是 K8s Project,
建立好專案後,點選建立叢集,填寫 cluster 基本資料,例如:
名稱:my-cluster
位置類型:區域
區域:asia-east1-a
主版本:靜態版本
(這裡填寫的名稱跟區域,在後續建立 K8s pod 時,會使用到)
接著,點選 (Create) 創建,等待幾分鐘建立完成。
開啟 cloud shell
在頁面的右上方,會有一個 cloud shell 的圖示,點選 cloud shell 啟動介面
或者可以在Kubernetes 叢集列表中,直接點選叢集的 “連結” 按鈕,接著點選"在 cloud shell"中執行。
下載 Kubernetes example 範例程式
在 cloudshell 首先取得一個 kubernetes/example 範例檔案
git clone https://github.com/kubernetes/examples
前往程式目錄
cd examples/guestbook
在這次範例中,將會建立一個 redis master/slave 與 php gustbook 網頁的一個範例
取得 Kubectl 憑證 (credentials)
首先,取得 kubectl 憑證(credentials),要依照前面建立的 cluster name 以及 區域名稱 填寫
gcloud container clusters get-credentials my-cluster --zone asia-east1-a
接著 cloudshell 會提示是否授權,點選是之後,返回以下訊息表示成功取得授權
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-cluster.
啟動 Reids master / Slave
(1) 建立 Redis master
首先,deployment redis master
kubectl create -f redis-master-deployment.yaml
接著查看 pod 狀態
kubectl get pods
建立 master service
kubectl create -f redis-master-service.yaml
確認 service 建立完成
kubectl get service
(2) 建立 Reids slave
在這裡會建立兩個slave 資源,同樣會先 deployment 後再建立起相關的 service
# 建立兩個 slave
kubectl create -f redis-slave-deployment.yaml
kubectl get pods
# 建立 slave 服務
kubectl create -f redis-slave-service.yaml
kubectl get service
部署 PHP 及前端
這裡主要是一個以 PHP 構建的簡易留言板,先將 deployment 建立起來
kubectl create -f frontend-deployment.yaml
這時,由於 frontend-service.yaml 的 type 設定為 NodePort,需要改成 LoadBalancer
sed -i -e 's/NodePort/LoadBalancer/g' frontend-service.yaml
建立服務
kubectl create -f frontend-service.yaml
查看外部IP
這時可以透過查看 service 的方式,查看 external ip,並且在瀏覽器中瀏覽該頁面
kubectl get services --watch
刪除 cluster
刪除 Kubernetes cluster ,只需要在我們建立叢集的列表中,勾選叢集左方的核選方塊,並且點選刪除圖示即可。
其他
最後,GCP 官方有提供許多範例可以直接參考官方 github