1. 程式人生 > 其它 >|NO.Z.00147|——————————|CloudNative|——|KuberNetes&資源排程.V17|-------------------------------------------------------|daemonset.v02|建立到特定主機|

|NO.Z.00147|——————————|CloudNative|——|KuberNetes&資源排程.V17|-------------------------------------------------------|daemonset.v02|建立到特定主機|



[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
### --- 檢視所有節點的標籤資訊

[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配置檔案引數
### --- 更改一下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)