Pod 副本管理~ 實作篇
觀察現況
我們透過 ReplicaSet 物件提交到 K8s API 的方式建立副本管理。
先行察看兩個物件,可以得知哪一個 pod 尚未套用 ReplicaSet 物件~
kubectl get pods
kubectl get rs
[user@minikube ~]$ kubectl get pods
NAME READY STATUS RESTARTS AGE
hello-kitty 1/1 Running 0 6d
hello-minikube-7c77b68cff-ncqmn 1/1 Running 1 11d
hello-moto-6456dff9f-67jh5 1/1 Running 0 5d
[user@minikube ~]$ kubectl get rs
NAME DESIRED CURRENT READY AGE
hello-minikube-7c77b68cff 1 1 1 11d
hello-moto-6456dff9f 1 1 1 5d另一個方式查看該 pod 是否已有 ReplicaSet 管理
kubectl get pods -o yaml
如果顯示的內容中,有出現kind: ReplicaSet物件,即代表受管理中
...
ownerReferences:
- apiVersion: extensions/v1beta1
blockOwnerDeletion: true
controller: true
kind: ReplicaSet
name: hello-moto-6456dff9f
新增 ReplicaSet 實例
經比對,pod hello-kitty 尚未套用 ReplicaSet,可以最為下列範例~
新增 hello-kitty 的 ReplicaSet 物件~rs-hello-kitty.yaml
套用 ReplicaSet 物件之前 Pod 狀態:
套用 ReplicaSet 物件:
套用 ReplicaSet 物件之後 Pod 狀態:
檢查 ReplicaSet,可以看見裏頭的 Labels、replicas 資訊:
Scale Pod 方式一
進行擴展 Pod[2 --> 4],透過指令kubectl scale
Scale Pod 方式二
透過 kubectl apply 進行宣告式scale[4 --> 3]
編輯 rs-hello-kitty.yaml 內容中的 replicas: value 進行管理
Scale Pod 方法差異
上述用了兩種方式進行 pod scale,kubectl scale --replicas跟kubectl apply -f
scale pod 目的與效果是相同的,但其實意義上,是有所不同的~
kubectl scale --replicas指令,適合自己工作上運用,但自己也要清楚當前 replicas valus。
kubectl apply -f是透過宣告式 yaml 檔案進行 replicas valus 管理,非常適合納入版控系統並搭配自動化腳本進行管理。進而更加適合團隊性質的協同合作需求。
你會希望我做過什麼變動,我也必須讓大家知道做過哪些變動,這是 DevOps 精神。
Last updated