|NO.Z.00147|——————————|CloudNative|——|KuberNetes&資源排程.V17|-------------------------------------------------------|daemonset.v02|建立到特定主機|
阿新 • • 發佈:2022-03-30
[CloudNative:KuberNetes&資源排程.V17] [Applications.KuberNetes] [|DevOps|k8s|資源排程|DaemonSet使用|DaemonSet更新和回滾|]
一、將daemonset部署到符合條件的宿主機上
### --- 為符合條件的宿主機打標籤 ~~~ 為所有node節點搭上標籤 ~~~ 只需要在node節點上部署ds,忽略master節點。需要給node節點打個標籤, [root@k8s-master01 ~]# kubectl label node k8s-node01 k8s-node02 ds=true node/k8s-node01 labeled node/k8s-node02 labeled
二、更改daemonset配置檔案引數### --- 檢視所有節點的標籤資訊 [root@k8s-master01 ~]# kubectl get node --show-labels NAME STATUS ROLES AGE VERSION LABELS k8s-master01 Ready <none> 9d v1.20.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master01,kubernetes.io/os=linux,node.kubernetes.io/node= k8s-master02 Ready <none> 9d v1.20.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master02,kubernetes.io/os=linux,node.kubernetes.io/node= k8s-master03 Ready <none> 9d v1.20.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master03,kubernetes.io/os=linux,node.kubernetes.io/node= k8s-node01 Ready <none> 9d v1.20.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,ds=true,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node01,kubernetes.io/os=linux,node.kubernetes.io/node= k8s-node02 Ready <none> 9d v1.20.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,ds=true,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node02,kubernetes.io/os=linux,node.kubernetes.io/node=
三、重新觸發容器### --- 更改一下DaemonSet [root@k8s-master01 ~]# kubectl edit ds spec: nodeSelector: //nodeSelector和containers是平級的, ds: "true" containers: - image: nginx:1.15.2 imagePullPolicy: IfNotPresent name: nginx resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File
### --- 重新觸發容器,檢視pod狀態
~~~ 不符合這個標籤的pod會被刪除掉
[root@k8s-master01 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-7lgnx 1/1 Running 0 6m24s
nginx-l9dkp 0/1 Running 0 6m24s
nginx-ps42t 1/1 Terminating 0 6m24s
nginx-v6687 1/1 Terminating 0 6m24s
nginx-zb474 1/1 Terminating 0 6m24s
### --- 檢視更改配置後容器狀態
~~~ 刪除的過程中,會做一次更新,因為DaemonSet是線上編譯的,會產生之前的一個版本記錄。
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-n47b7 1/1 Running 0 68s 172.17.125.2 k8s-node01 <none> <none>
nginx-tsxcp 1/1 Running 0 2m8s 172.27.14.194 k8s-node02 <none>
四、檢視pod的歷史版本
### --- 通過rollout檢視pod構建歷史版本
[root@k8s-master01 ~]# kubectl rollout history ds nginx //可以檢視到之前的記錄。
daemonset.apps/nginx
REVISION CHANGE-CAUSE
1 <none>
2 <none>
五、新新增一個pod到指定的宿主機上
### --- 新新增一個節點;在master03上
[root@k8s-master01 ~]# kubectl label node k8s-master03 ds=true
node/k8s-master03 labeled
### --- 檢視pod建立結果
[root@k8s-master01 ~]# kubectl get po -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-n47b7 1/1 Running 0 3m40s 172.17.125.2 k8s-node01 <none> <none>
nginx-tsxcp 1/1 Running 0 4m40s 172.27.14.194 k8s-node02 <none> <none>
nginx-wfrpz 1/1 Running 0 10s 172.18.195.8 k8s-master03 <none>
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
來自為知筆記(Wiz)