iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
DevOps

k8s歷險記系列 第 14

Day14- 不純關係 Deployment 和 ReplicaSet(一)

  • 分享至 

  • xImage
  •  

前面我們介紹了單pod建立service,不過實務上這種做法很沒必要。
因為service的工作是提供外部能夠找到pod群當中能用的pod,當只有單個pod的時候,壞掉或是更版也是全部都壞掉跟更版,不會有負載平衡的效果。
因此,就該Deployment 和 ReplicaSet 出場了。

何謂ReplicaSet

ReplicaSet確保一組穩定的replica Pods運行,會確保這些pod會在資源許可下,會啟動你要求的數量。
依造官方說法,建議ReplicaSet搭配deployment使用,並且透過deployment運行,而非直接操作ReplicaSet。
因此要使用deployment前,最好先了解ReplicaSet

建立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

https://ithelp.ithome.com.tw/upload/images/20210922/201296070QSyWDP8NG.png

可以看到也成功建立了三個pod。

刪除ReplicaSet

想要刪除ReplicaSet 一樣使用kubectl delete

kubectl delete rs frontend

然後就會像下圖那樣,將ReplicaSet和pod都刪除了
https://ithelp.ithome.com.tw/upload/images/20210922/201296074K9Zh9vPyj.png

如前述所說,一般情況不會這樣直接建立ReplicaSet以及對它操作,都會透過 Deployment去處理,因此下一章會正式進入Deployment,也可以順便看下如何透過Deployment來跟ReplicaSet互動。


上一篇
Day13-pod服務處 介紹service
下一篇
Day15-有關係就沒關係 Deployment 和 ReplicaSet(二)
系列文
k8s歷險記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言