前言
本文為〈Kubernetes 官方文件〉的學習筆記。
環境
- macOS
- minikube
概述
目標為部署一個簡單的多層網頁應用程式,由以下部分組成:
- 單實例 Redis 主節點,用來保存留言條目。
- 多個 Redis 副節點,用來讀取資料。
- 多個網頁前端實例。
部署 Redis
創建 Redis 主節點 Deployment
新增一個 redis-master-deployment.yaml 檔,這是 Redis 的主節點的 Deployment 設定檔:
| 1 | apiVersion: apps/v1 | 
建立 Deployment。
| 1 | kubectl apply -f redis-master-deployment.yaml | 
檢查 Redis 主節點的 Pod 是否正在運行。
| 1 | kubectl get pods | 
查看 Redis 主節點的 Pod 的日誌。
| 1 | kubectl logs -f <POD_NAME> | 
創建 Redis 主節點 Service
新增一個 redis-master-service.yaml 檔,這是 Redis 的主節點的 Service 設定檔:
| 1 | apiVersion: v1 | 
建立 Service。
| 1 | kubectl apply -f redis-master-service.yaml | 
檢查 Redis 主節點的 Service 是否正在運行。
| 1 | kubectl get services | 
創建 Redis 副節點 Deployment
新增一個 redis-slave-deployment.yaml 檔,這是 Redis 的副節點的 Deployment 設定檔:
| 1 | apiVersion: apps/v1 | 
建立 Deployment。
| 1 | kubectl apply -f redis-slave-deployment.yaml | 
檢查 Redis 副節點的 Pod 是否正在運行。
| 1 | kubectl get pods | 
創建 Redis 副節點 Service
新增一個 redis-slave-service.yaml 檔,這是 Redis 的副節點的 Service 設定檔:
| 1 | apiVersion: v1 | 
建立 Service。
| 1 | kubectl apply -f redis-slave-service.yaml | 
檢查 Redis 副節點的 Service 是否正在運行。
| 1 | kubectl get services | 
部署應用程式
創建 Deployment
新增一個 frontend-deployment.yaml 檔,這是應用程式的 Deployment 設定檔:
| 1 | apiVersion: apps/v1 | 
建立 Deployment。
| 1 | kubectl apply -f frontend-deployment.yaml | 
檢查應用程式的 Pod 是否正在運行。
| 1 | kubectl get pods -l app=guestbook -l tier=frontend | 
創建 Service
新增一個 frontend-service.yaml 檔,這是應用程式的 Service 設定檔:
| 1 | apiVersion: v1 | 
建立 Service。
| 1 | kubectl apply -f frontend-service.yaml | 
檢查應用程式的 Service 是否正在運行。
| 1 | kubectl get services | 
訪問應用程式
訪問應用程式。
| 1 | minikube service frontend | 
擴展
擴展應用程式 Pod 的數量:
| 1 | kubectl scale deployment frontend --replicas=5 | 
查看應用程式 Pod 的數量:
| 1 | kubectl get pods | 
縮小應用程式 Pod 的數量:
| 1 | kubectl scale deployment frontend --replicas=2 | 
查看應用程式 Pod 的數量:
| 1 | kubectl get pods | 
清理
刪除所有的 Pods 和 Services。
| 1 | kubectl delete deployment -l app=redis | 
確認沒有 Pod 正在運行。
| 1 | kubectl get pods |