中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解ReplicaSet的操作

發布時間:2021-11-24 16:37:37 來源:億速云 閱讀:239 作者:柒染 欄目:云計算

如何理解ReplicaSet的操作,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

我們通過一些例子來演示ReplicaSet的創建、查看、更新、刪除等操作。

創建

首先我們做準備一個名為replicaset.yaml的配置文件,其內容如下所示:

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: replicaset-runs-pod
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.19.0

ReplicaSet配置保證同時有3個Pod副本在運行。

使用kubectl create命令創建ReplicaSet控制器,如下所示:

[root@ecs-d8b6 manifests]# kubectl create -f replicaset.yaml 
replicaset.apps/replicaset-runs-pod created

命令行輸出顯示,一個名為replicaset-runs-podReplicaSet控制器已經創建完成。

查看

我們先查看剛創建的ReplicaSet控制器:

[root@ecs-d8b6 manifests]# kubectl get replicaset 
NAME                  DESIRED   CURRENT   READY   AGE
replicaset-runs-pod   3         3         3       90s

可以看到控制器replicaset-runs-pod期望的Pod數量(DESIRED)為3,當前已創建的Pod數量(CURRENT)也為3,并且處于READY狀態的Pod數量(READY)同樣是3,正是我們期望的狀態。

接著再查看實際運行的Pod:

[root@ecs-d8b6 manifests]# kubectl get pods 
NAME                        READY   STATUS    RESTARTS   AGE
replicaset-runs-pod-dzhqp   1/1     Running   0          5m
replicaset-runs-pod-hpbs8   1/1     Running   0          5m
replicaset-runs-pod-xhx9j   1/1     Running   0          5m

可以看到有3個Pod在運行,Pod名字統一使用其控制器名字為前綴,再加一個隨機字符串。

使用kubectl describe命令查看控制器,可以看到其創建Pod的記錄:

[root@ecs-d8b6 manifests]# kubectl describe replicaset replicaset-runs-pod 
Name:         replicaset-runs-pod
Namespace:    default
Selector:     app=nginx
Labels:       <none>
Annotations:  <none>
Replicas:     3 current / 3 desired
Pods Status:  3 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=nginx
  Containers:
   nginx:
    Image:        nginx:1.19.0
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Events:
  Type    Reason            Age   From                   Message
  ----    ------            ----  ----                   -------
  Normal  SuccessfulCreate  8m5s  replicaset-controller  Created pod: replicaset-runs-pod-xhx9j
  Normal  SuccessfulCreate  8m5s  replicaset-controller  Created pod: replicaset-runs-pod-dzhqp
  Normal  SuccessfulCreate  8m5s  replicaset-controller  Created pod: replicaset-runs-pod-hpbs8

通過最后的Events信息可知,控制器replicaset-runs-pod運行過程中分別創建了上面的3個Pod。

更新

改變副本個數

我們使用kubectl edit命令修改控制器replicaset-runs-pod,把spec.replicas 數量由3調整為5:

[root@ecs-d8b6 manifests]# kubectl edit replicaset replicaset-runs-pod 
replicaset.apps/replicaset-runs-pod edited

然后再次查看Pod:

[root@ecs-d8b6 manifests]# kubectl get pods 
NAME                        READY   STATUS    RESTARTS   AGE
replicaset-runs-pod-5mtdk   1/1     Running   0          37s
replicaset-runs-pod-6rqqp   1/1     Running   0          37s
replicaset-runs-pod-dzhqp   1/1     Running   0          21m
replicaset-runs-pod-hpbs8   1/1     Running   0          21m
replicaset-runs-pod-xhx9j   1/1     Running   0          21m

可以看到兩個新的Pod被創建了出來,Pod副本數與配置中spec.replicas設定置一致。

類似地,當我們再次修改控制器replicaset-runs-pod配置,將spec.replicas 數量由5調整為3,多出的Pod數量會被自動刪除。

模擬Pod異常

ReplicaSet控制器將始終確保集群中運行的Pod副本數滿足期望值,當Pod被刪除時,控制器將馬上創建新的Pod填補空缺:

[root@ecs-d8b6 manifests]# kubectl delete pods replicaset-runs-pod-dzhqp
pod "replicaset-runs-pod-dzhqp" deleted
[root@ecs-d8b6 manifests]# kubectl get pods
NAME                        READY   STATUS    RESTARTS   AGE
replicaset-runs-pod-hpbs8   1/1     Running   0          31m
replicaset-runs-pod-tbccg   1/1     Running   0          9s
replicaset-runs-pod-xhx9j   1/1     Running   0          31m

上面的例子中,當手動刪除某個ReplicaSet控制器管理的Pod時,新的Pod馬上被創建了出來,通過Pod運行時間或者控制器事件信息都可以看出。

刪除

當刪除ReplicaSet控制器時,其管理的Pod默認也會相應的刪除,如下所示:

[root@ecs-d8b6 manifests]# kubectl delete -f replicaset.yaml 
replicaset.apps "replicaset-runs-pod" deleted
[root@ecs-d8b6 manifests]# kubectl get pods
No resources found in default namespace.

ReplicaSet控制器的能力側重于對副本數量的把控,它能保證集群中時刻運行指定數量的Pod副本,當配置中Pod副本數量變化時,可以動態地調整Pod數量。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

工布江达县| 紫云| 河北区| 丰县| 莲花县| 新巴尔虎右旗| 龙岩市| 定远县| 霍林郭勒市| 景东| 雷州市| 平遥县| 镇远县| 南皮县| 神农架林区| 顺平县| 象山县| 宁明县| 六枝特区| 怀柔区| 呼伦贝尔市| 咸宁市| 简阳市| 勐海县| 贡嘎县| 延川县| 思南县| 元江| 大港区| 白银市| 凉山| 元阳县| 南城县| 读书| 广灵县| 蓬安县| 许昌县| 建始县| 积石山| 阿克苏市| 林周县|