前言
本文為〈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 |