日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kubernetes----ReplicaSet控制器

發布時間:2024/3/7 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes----ReplicaSet控制器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【原文鏈接】

一、ReplicaSet控制器簡介

1.1 ReplicaSet控制器簡介

ReplicaSet控制器的主要作用是保證一定數量的pod能能夠正常運行,它會持續監聽這些pod的運行狀態,一旦pod發生故障,就會重啟或重建,同時它還支持對pod數量的擴縮容和版本鏡像的升級

1.2 ReplicaSet控制資源清單文件

apiVersion: apps/v1 # 版本號 kind: ReplicaSet # 類型 metadata: # 元數據name: # rs名稱namespace: # 所屬命名空間labels: # 標簽controller: rs spec: # 性情描述replicas: 3 # 副本數量selector: # 選擇器,通過它指定該控制器管理哪些podmatchLabels: # label匹配規則app: nginx-podmatchExpressions: # Expression匹配規則- {key: app, operator: In, values: [nginx-pod]}template: # 模板,當副本數量不足時,會根據下面的額模板創建pod副本metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.1ports:- containerPort:80

這里面spec中的常用的幾個參數含義:

  • replicas:指定部分數量,其實就是當前rs創建出來的pod的數量,默認為1
  • selector:選擇器,它的作用是建立pod控制器和pod之間的關聯關系,采用的Label Selector機制,在pod模板上 定義label,在控制器上定義選擇器,就可以表明當前控制器能管理哪些pod了
  • template:模板,就是當前控制器創建pod所使用的模板,里面其實就是pod的定義

二、ReplicaSet實例演示

2.1 ReplicaSet控制器創建

編輯replicaset.yaml文件,內容如下:

apiVersion: v1 kind: Namespace metadata:name: dev---apiVersion: apps/v1 kind: ReplicaSet metadata:name: pc-replicasetnamespace: dev spec:replicas: 3selector:matchLabels:app: nginx-podtemplate:metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.1

使用如下命令創建資源

[root@master pod_controller]# kubectl apply -f replicaset.yaml namespace/dev created replicaset.apps/pc-replicaset created [root@master pod_controller]#

通過如下命令可以查詢到創建結果

[root@master pod_controller]# kubectl get rs,pod -n dev -o wide NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR replicaset.apps/pc-replicaset 3 3 3 2m57s nginx nginx:1.17.1 app=nginx-podNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/pc-replicaset-74djl 1/1 Running 0 2m57s 10.244.2.50 node2 <none> <none> pod/pc-replicaset-m5tmz 1/1 Running 0 2m57s 10.244.1.23 node1 <none> <none> pod/pc-replicaset-wlvcm 1/1 Running 0 2m57s 10.244.1.24 node1 <none> <none> [root@master pod_controller]#

2.2 ReplicaSet實現擴縮容

2.2.1 通過修改配置文件方式實現

編輯replicaset.yaml文件,將replicas值設置為6個,如下

apiVersion: v1 kind: Namespace metadata:name: dev---apiVersion: apps/v1 kind: ReplicaSet metadata:name: pc-replicasetnamespace: dev spec:replicas: 6selector:matchLabels:app: nginx-podtemplate:metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.1

然后通過如下命令使配置生效

[root@master pod_controller]# kubectl apply -f replicaset.yaml namespace/dev unchanged replicaset.apps/pc-replicaset configured [root@master pod_controller]#

通過如下命令可以查看到配置已經生效

[root@master pod_controller]# kubectl get rs,pod -n dev NAME DESIRED CURRENT READY AGE replicaset.apps/pc-replicaset 6 6 6 8m43sNAME READY STATUS RESTARTS AGE pod/pc-replicaset-2bcwc 1/1 Running 0 39s pod/pc-replicaset-74djl 1/1 Running 0 8m43s pod/pc-replicaset-7744x 1/1 Running 0 39s pod/pc-replicaset-7rqz2 1/1 Running 0 39s pod/pc-replicaset-m5tmz 1/1 Running 0 8m43s pod/pc-replicaset-wlvcm 1/1 Running 0 8m43s [root@master pod_controller]#

2.2.2 通過命令的方式擴縮容

如下,通過如下命令將pod數量縮小到2個

[root@master pod_controller]# kubectl scale rs pc-replicaset --replicas=2 -n dev replicaset.apps/pc-replicaset scaled [root@master pod_controller]#

然后使用如下命令查詢,可以發現縮容已經完成

[root@master pod_controller]# kubectl get rs,pod -n dev NAME DESIRED CURRENT READY AGE replicaset.apps/pc-replicaset 2 2 2 11mNAME READY STATUS RESTARTS AGE pod/pc-replicaset-m5tmz 1/1 Running 0 11m pod/pc-replicaset-wlvcm 1/1 Running 0 11m [root@master pod_controller]#

2.3 ReplicaSet實現鏡像版本的升降級

2.3.1 通過修改配置文件的方式升級鏡像版本

編輯yaml文件,修改鏡像版本為1.17.3,如下:

apiVersion: v1 kind: Namespace metadata:name: dev---apiVersion: apps/v1 kind: ReplicaSet metadata:name: pc-replicasetnamespace: dev spec:replicas: 2selector:matchLabels:app: nginx-podtemplate:metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.3

然后使用如下命令使配置生效

[root@master pod_controller]# kubectl apply -f replicaset.yaml namespace/dev unchanged replicaset.apps/pc-replicaset configured [root@master pod_controller]#

通過如下命令,可以發現鏡像版本已經升級

[root@master pod_controller]# kubectl get rs,pod -n dev -o wide NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR replicaset.apps/pc-replicaset 2 2 2 15m nginx nginx:1.17.3 app=nginx-podNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/pc-replicaset-m5tmz 1/1 Running 0 15m 10.244.1.23 node1 <none> <none> pod/pc-replicaset-wlvcm 1/1 Running 0 15m 10.244.1.24 node1 <none> <none> [root@master pod_controller]#

2.3.2 通過命令的方式對鏡像版本升降級

使用如下命令,將鏡像版本再降到1.17.1

[root@master pod_controller]# kubectl set image rs pc-replicaset nginx=nginx:1.17.1 -n dev replicaset.apps/pc-replicaset image updated [root@master pod_controller]#

通過如下命令查詢,可以發現已經生效

[root@master pod_controller]# kubectl get rs,pod -n dev -o wide NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR replicaset.apps/pc-replicaset 2 2 2 17m nginx nginx:1.17.1 app=nginx-podNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/pc-replicaset-m5tmz 1/1 Running 0 17m 10.244.1.23 node1 <none> <none> pod/pc-replicaset-wlvcm 1/1 Running 0 17m 10.244.1.24 node1 <none> <none> [root@master pod_controller]#

2.4 刪除ReplicaSet

2.4.1 命令行方式刪除ReplicaSet以及Pod

使用如下命令刪除,在刪除ReplicaSet前,會先把pod數量調整為0,等所有pod都刪除后,再刪除ReplicaSet

kubectl delete rs pc-replicaset -n dev

2.4.2 僅刪除ReplicaSet,保留Pod

使用如下命令即可

kubectl delete rs pc-replicaset -n dev --cascade=false

2.4.3 使用yaml文件刪除

使用如下命令(推薦)

kubectl delete -f replicaset.yaml

總結

以上是生活随笔為你收集整理的Kubernetes----ReplicaSet控制器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。