GCP 佈建 Kubernetes 入門 - 使用 Kubernetes Engine

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

https://github.com/GoogleCloudPlatform