Kubernetes(k8s)的Pod部署到指定的node(节点)

1.在worker节点 (computer),配置SSD

# kubectl label node computer disktype=ssd
node/computer labeled

# kubectl get  node --show-labels
NAME         STATUS   ROLES    AGE   VERSION   LABELS
computer     Ready    worker   23d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disktype=ssd,kubernetes.io/arch=amd64,kubernetes.io/hostname=computer,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
controller   Ready    master   23d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=controller,kubernetes.io/os=linux,node-role.kubernetes.io/master=
storage      Ready    worker   23d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=storage,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker2

2.在yaml格式指定将Pod部署到computer节点(worker)上

# vi nginx.yml 

apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx
spec:
 selector:
  matchLabels:
   app: web_server
 replicas: 3
 template:
  metadata:
   labels:
    app: web_server
  spec:
   containers:
   - name: nginx
     image: nginx:1.7.9
     ports:
     - containerPort: 80
   nodeSelector:
    disktype: ssd

3.部署yaml格式编辑的内容

# kubectl apply -f nginx.yml 
deployment.apps/nginx created

# kubectl get pod -o wide
NAME                     READY   STATUS    RESTARTS   AGE   IP            NODE       NOMINATED NODE   READINESS GATES
nginx-7c6c55dbc5-9s8b8   1/1     Running   0          90s   10.244.1.15   computer   <none>           <none>
nginx-7c6c55dbc5-hc7hx   1/1     Running   0          90s   10.244.1.16   computer   <none>           <none>
nginx-7c6c55dbc5-tqwgc   1/1     Running   0          90s   10.244.1.14   computer   <none>           <none>

4.删除label disktype属性

# kubectl label node computer disktype-
node/computer labeled

# kubectl get node --show-labels
NAME         STATUS   ROLES    AGE   VERSION   LABELS
computer     Ready    worker   23d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=computer,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
controller   Ready    master   23d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=controller,kubernetes.io/os=linux,node-role.kubernetes.io/master=
storage      Ready    worker   23d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=storage,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker2

5.需要在nginx.yml中删除nodeSelector设置,然后通过kubectl apply重新部署

# vi nginx.yml 

apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx
spec:
 selector:
  matchLabels:
   app: web_server
 replicas: 3
 template:
  metadata:
   labels:
    app: web_server
  spec:
   containers:
   - name: nginx
     image: nginx:1.7.9
     ports:
     - containerPort: 80

# kubectl apply -f nginx.yml 
deployment.apps/nginx configured

# kubectl get pod -o wide
NAME                     READY   STATUS    RESTARTS   AGE   IP            NODE       NOMINATED NODE   READINESS GATES
nginx-7f768d8977-b8bpz   1/1     Running   0          30s   10.244.2.7    storage    <none>           <none>
nginx-7f768d8977-jsg8m   1/1     Running   0          27s   10.244.1.18   computer   <none>           <none>
nginx-7f768d8977-tdd29   1/1     Running   0          32s   10.244.1.17   computer   <none>           <none>

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路来了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值