|NO.Z.00147|——————————|CloudNative|——|KuberNetes&资源调度.V17|——|daemonset.v02|创建到特定主机|
一、将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>
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」