指定调度节点

一、指定调度节点

Ⅰ、Pod.spec.nodeName 将 Pod 直接调度到指定的 Node 节点上,会跳过 Scheduler 的调度策略,该匹配规则是强制匹配


apiVersion: apps/v1
kind: Deployment
metadata:
  name: myweb
spec:
  selector:
    matchLabels:
      app: myweb
  replicas: 7
  template:
    metadata:
      labels:
        app: myweb
    spec:
      nodeName: k8s-node-01
      containers:
      - name: myweb
        image: wangyanglinux/myapp:v1
        ports:
        - containerPort: 80

###查看pod分布
[root@k8s-master-01 affi]# kubectl get nodes 
NAME            STATUS   ROLES                  AGE   VERSION
k8s-master-01   Ready    control-plane,master   25d   v1.20.2
k8s-node-01     Ready    <none>                 25d   v1.20.2
k8s-node-02     Ready    <none>                 25d   v1.20.2



[root@k8s-master-01 affi]# kubectl get pods -o wide
NAME                     READY   STATUS    RESTARTS   AGE   IP             NODE          NOMINATED NODE   READINESS GATES
myweb-8574d4dccc-2kxdt   1/1     Running   0          12s   10.244.1.110   k8s-node-01   <none>           <none>
myweb-8574d4dccc-9pf6q   1/1     Running   0          12s   10.244.1.114   k8s-node-01   <none>           <none>
myweb-8574d4dccc-h9lwx   1/1     Running   0          12s   10.244.1.108   k8s-node-01   <none>           <none>
myweb-8574d4dccc-kd8x5   1/1     Running   0          12s   10.244.1.112   k8s-node-01   <none>           <none>
myweb-8574d4dccc-vnj9w   1/1     Running   0          12s   10.244.1.113   k8s-node-01   <none>           <none>
myweb-8574d4dccc-xv5np   1/1     Running   0          12s   10.244.1.111   k8s-node-01   <none>           <none>
myweb-8574d4dccc-zht9j   1/1     Running   0          12s   10.244.1.109   k8s-node-01   <none>           <none>

Ⅱ、Pod.spec.nodeSelector:通过 kubernetes 的 label-selector 机制选择节点,由调度器调度策略匹配 label,而后调度 Pod 到目标节点,该匹配规则属于强制约束

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myweb111
spec:
  selector:
    matchLabels:
      app: myweb111
  replicas: 7
  template:
    metadata:
      labels:
        app: myweb111
    spec:
      nodeSelector:
        type: backEndNode1
      containers:
      - name: myweb
        image: wangyanglinux/myapp:v1
        ports:
        - containerPort: 80

#因为没有的标签选择器
[root@k8s-master-01 affi]# kubectl apply -f pod6.yaml 
deployment.apps/myweb111 created
[root@k8s-master-01 affi]# kubectl get pods
NAME                        READY   STATUS    RESTARTS   AGE
myweb111-655f78999f-8c8vv   0/1     Pending   0          4s
myweb111-655f78999f-8r2mn   0/1     Pending   0          4s
myweb111-655f78999f-bhjlq   0/1     Pending   0          4s
myweb111-655f78999f-f2qpk   0/1     Pending   0          4s
myweb111-655f78999f-l5njb   0/1     Pending   0          4s
myweb111-655f78999f-mzc9d   0/1     Pending   0          4s
myweb111-655f78999f-txzdq   0/1     Pending   0          4s

#修改对应的node标签选择器
[root@k8s-master-01 affi]# kubectl label nodes k8s-node-01 type=backEndNode1
     
[root@k8s-master-01 affi]# kubectl get pods
NAME                        READY   STATUS    RESTARTS   AGE
myweb111-655f78999f-8c8vv   1/1     Running   0          2m41s
myweb111-655f78999f-8r2mn   1/1     Running   0          2m41s
myweb111-655f78999f-bhjlq   1/1     Running   0          2m41s
myweb111-655f78999f-f2qpk   1/1     Running   0          2m41s
myweb111-655f78999f-l5njb   1/1     Running   0          2m41s
myweb111-655f78999f-mzc9d   1/1     Running   0          2m41s
myweb111-655f78999f-txzdq   1/1     Running   0          2m41s
  

#修改node2的标签选择器
[root@k8s-master-01 affi]# kubectl label nodes k8s-node-02 type=backEndNode1
node/k8s-node-02 labeled
[root@k8s-master-01 affi]# kubectl get pods
NAME                        READY   STATUS    RESTARTS   AGE
myweb111-655f78999f-8c8vv   1/1     Running   0          3m34s
myweb111-655f78999f-8r2mn   1/1     Running   0          3m34s
myweb111-655f78999f-bhjlq   1/1     Running   0          3m34s
myweb111-655f78999f-f2qpk   1/1     Running   0          3m34s
myweb111-655f78999f-l5njb   1/1     Running   0          3m34s
myweb111-655f78999f-mzc9d   1/1     Running   0          3m34s
myweb111-655f78999f-txzdq   1/1     Running   0          3m34s

#修改副本数量 (spec:replicas)
[root@k8s-master-01 affi]# kubectl edit deployments.apps myweb111 
deployment.apps/myweb111 edited

#发现node1和node2都有pod的分布
[root@k8s-master-01 affi]# kubectl get pods -o wide
NAME                        READY   STATUS              RESTARTS   AGE     IP             NODE          NOMINATED NODE   READINESS GATES
myweb111-655f78999f-5ml48   0/1     ContainerCreating   0          3s      <none>         k8s-node-02   <none>           <none>
myweb111-655f78999f-8c8vv   1/1     Running             0          4m21s   10.244.1.117   k8s-node-01   <none>           <none>
myweb111-655f78999f-8r2mn   1/1     Running             0          4m21s   10.244.1.118   k8s-node-01   <none>           <none>
myweb111-655f78999f-bhjlq   1/1     Running             0          4m21s   10.244.1.120   k8s-node-01   <none>           <none>
myweb111-655f78999f-f2qpk   1/1     Running             0          4m21s   10.244.1.116   k8s-node-01   <none>           <none>
myweb111-655f78999f-fg99t   0/1     ContainerCreating   0          3s      <none>         k8s-node-02   <none>           <none>
myweb111-655f78999f-gwjjq   0/1     ContainerCreating   0          3s      <none>         k8s-node-02   <none>           <none>
myweb111-655f78999f-l5njb   1/1     Running             0          4m21s   10.244.1.119   k8s-node-01   <none>           <none>
myweb111-655f78999f-mzc9d   1/1     Running             0          4m21s   10.244.1.121   k8s-node-01   <none>           <none>
myweb111-655f78999f-nkck4   0/1     ContainerCreating   0          3s      <none>         k8s-node-02   <none>           <none>
myweb111-655f78999f-sf4cv   0/1     ContainerCreating   0          3s      <none>         k8s-node-02   <none>           <none>
myweb111-655f78999f-txzdq   1/1     Running             0          4m21s   10.244.1.115   k8s-node-01   <none>           <none>
[root@k8s-master-01 affi]# kubectl get pods -o wide
NAME                        READY   STATUS    RESTARTS   AGE     IP             NODE          NOMINATED NODE   READINESS GATES
myweb111-655f78999f-5ml48   1/1     Running   0          5s      10.244.2.129   k8s-node-02   <none>           <none>
myweb111-655f78999f-8c8vv   1/1     Running   0          4m23s   10.244.1.117   k8s-node-01   <none>           <none>
myweb111-655f78999f-8r2mn   1/1     Running   0          4m23s   10.244.1.118   k8s-node-01   <none>           <none>
myweb111-655f78999f-bhjlq   1/1     Running   0          4m23s   10.244.1.120   k8s-node-01   <none>           <none>
myweb111-655f78999f-f2qpk   1/1     Running   0          4m23s   10.244.1.116   k8s-node-01   <none>           <none>
myweb111-655f78999f-fg99t   1/1     Running   0          5s      10.244.2.126   k8s-node-02   <none>           <none>
myweb111-655f78999f-gwjjq   1/1     Running   0          5s      10.244.2.127   k8s-node-02   <none>           <none>
myweb111-655f78999f-l5njb   1/1     Running   0          4m23s   10.244.1.119   k8s-node-01   <none>           <none>
myweb111-655f78999f-mzc9d   1/1     Running   0          4m23s   10.244.1.121   k8s-node-01   <none>           <none>
myweb111-655f78999f-nkck4   1/1     Running   0          5s      10.244.2.128   k8s-node-02   <none>           <none>
myweb111-655f78999f-sf4cv   1/1     Running   0          5s      10.244.2.130   k8s-node-02   <none>           <none>
myweb111-655f78999f-txzdq   1/1     Running   0          4m23s   10.244.1.115   k8s-node-01   <none>           <none>

                          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值