前面我們介紹了單pod建立service,不過實務上這種做法很沒必要。
因為service的工作是提供外部能夠找到pod群當中能用的pod,當只有單個pod的時候,壞掉或是更版也是全部都壞掉跟更版,不會有負載平衡的效果。
因此,就該Deployment 和 ReplicaSet 出場了。
ReplicaSet確保一組穩定的replica Pods運行,會確保這些pod會在資源許可下,會啟動你要求的數量。
依造官方說法,建議ReplicaSet搭配deployment使用,並且透過deployment運行,而非直接操作ReplicaSet。
因此要使用deployment前,最好先了解ReplicaSet
首先先建立frontend.yaml,並將其內容複製進去:
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
# modify replicas according to your case
replicas: 3
selector:
matchLabels:
tier: frontend
template:
metadata:
labels:
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google_samples/gb-frontend:v3
上面可以看到kind種類為ReplicaSet,replicas為3代表會建立三個pod。
再來透過下面指令
kubectl apply -f frontend.yaml
就可以建立ReplicaSet,而要確認有沒有正確建立則可以用 get rs
kubectl get rs
kubectl get pods
可以看到也成功建立了三個pod。
想要刪除ReplicaSet 一樣使用kubectl delete
kubectl delete rs frontend
然後就會像下圖那樣,將ReplicaSet和pod都刪除了
如前述所說,一般情況不會這樣直接建立ReplicaSet以及對它操作,都會透過 Deployment去處理,因此下一章會正式進入Deployment,也可以順便看下如何透過Deployment來跟ReplicaSet互動。