k8s-控制器deployment彈性擴容,更新映象,回滾,DaemonSet,StatufluSet
阿新 • • 發佈:2021-11-23
目錄
1、控制器deployment,DaemonSet,StatufluSet
k8s中控制器分為:deployment、DaemonSet、StatufluSet Deployment:一般用來部署長期執行的、無狀態的應用 特點:叢集之中,隨機部署 DaemonSet:每一個節點上部署一個Pod,刪除節點自動刪除對應的POD(zabbix-agent) 特點:每一臺上有且只有一臺 StatudfluSet: 部署有狀態應用 特點:有啟動順序 檢視控制器: kubectl get deployments kubectl get daemonsets kubectl get statefulsets 刪除控制器: kubectl delete deployments 名字 kubectl delete daemonsets 名字 kubectl delete statefulsets 名字
2、控制器-deployment
deployment.yaml
replicas: 1 決定pod部署的數量 Deploymnet:在Deployment物件中描述所需的狀態,然後Deployment控制器將實際狀態以受控的速率更改為所需的狀態。 apiVersion: apps/v1 kind: Deployment metadata: name: deployment spec: replicas: 1 # pod數量 selector: # 選擇器 matchLabels: # 標籤 release: stable # 選擇標籤 template: # 模版 metadata: name: test-tag # 控制器名字 labels: release: stable # 設定控制器標籤 spec: containers: - name: nginx # 映象名稱 image: nginx # 映象
彈性擴容
方式1-修改配置清單
kubectl edit 資源型別 資源名稱
[root@sg-14 k8s_yaml]# kubectl edit deployments test
修改replicas數量:
replicas: 2
方式2-打標籤
[root@sg-14 k8s_yaml]kubectl patch deployments.apps test -p '{"spec":{"replicas":1}}'
方式3-scale
kubectl scale 資源型別/資源名稱 --replicas=10 [root@sg-14 k8s_yaml]# kubectl scale deployment/test --replicas=10
更新映象
方式1:打標籤
一層層的按照yaml寫
[root@k8s-m-01 ~]# kubectl patch deployments.apps django -p '{"spec":{"template":{"spec":{"containers":[{"image":"nginx:1.18.0", "name":"nginx"}]}}}}'
方式2:修改配置清單
[root@sg-14 k8s_yaml]# vi test.yaml
image: nginx-lalal
#######
修改映象版本
#######
kubectl apply test.yaml //重新部署下
方式3:設定映象
kubectl set image 資源型別/資源名稱 映象名字=映象版本
[root@k8s-m-01 ~]# kubectl set image deployment/django nginx=nginx:1.16.0
方式4:修改edit
kubectl edit [資源型別] [資源名稱]
[root@sg-14 k8s_yaml]# kubectl edit deployments test
找到-image修改
回滾
kubectl rollout undo [資源型別] [資源名稱]
kubectl rollout history deployment test // 版本歷史
kubectl rollout undo deployment test // 回滾上一個版本
kubectl rollout undo deployment test --to-revision=1 // 回滾指定版本
3、控制器-DaemonSet
daemonset.yaml
# 在叢集中所有的節點上部署只部署一個Pod,新加入的node節點也會部署一個
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: zabbix-agent
spec:
selector:
matchLabels:
app: zabbix-agent
template:
metadata:
labels:
app: zabbix-agent
spec:
containers:
- name: nginx
image: nginx
修改配置檔案daemonset
1、修改配置檔案
[root@k8s-m-01 ~]# kubectl edit daemonsets.apps zabbix-agent
2、打標籤的方式
[root@k8s-m-01 ~]# kubectl patch daemonsets.apps zabbix-agent -p '{"spec":{"template":{"spec":{"containers":[{"image":"zabbix/zabbix-agent:centos-5.2.4", "name":"zabbix-agent"}]}}}}'
daemonset.apps/zabbix-agent patched
3、設定映象
[root@k8s-m-01 ~]# kubectl set image daemonset/zabbix-agent zabbix-agent=zabbix/zabbix-agent:centos-5.2.3
daemonset.apps/zabbix-agent image updated
回滾
## 回滾到上一個版本
[root@k8s-m-01 ~]# kubectl rollout undo daemonset zabbix-agent
daemonset.apps/zabbix-agent rolled back
## 回滾到指定版本
[root@k8s-m-01 ~]# kubectl rollout undo daemonset zabbix-agent --to-revision=1
daemonset.apps/zabbix-agent rolled back
4、StatudfluSet
選擇了IT,必定終身學習