20-k8s中pod的调度-nodeSelector节点选择器

 一、概念

        我们先创建一个普通的deploy资源,设置为10个副本

[root@k8s231 dns]# cat deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: dm01
spec:
  replicas: 10
  selector:
    matchLabels:
      k8s: k8s
  template:
    metadata:
      labels:
        k8s: k8s
    spec:
      containers:
      - name: c
        image: nginx:1.20.1-alpine
        ports:
        - name: p
          containerPort: 80

[root@k8s231 dns]# kubectl apply -f deploy.yaml

我们查看一下创建的pod

[root@k8s231 dns]# kubectl get pods -o wide

20-k8s中pod的调度-nodeSelector节点选择器_第1张图片

        我们发现,其是随机创建在,k8s232和k8s233节点上的;

        那么我们有没有方法,让pod根据我们自己的想法,创建在我们想要的节点上呐?

        接下来,我们就学习,关于pod调度的节点选择器,nodeSelector

二、接单选择器nodeSelector的使用

        目的就是让pod创建在我们想要的节点上;

1,使用步骤

1,给节点(k8s231、k8s232、k8s233)打标签

2,pod中编辑节点选择(选择节点的标签)

3,创建资源

2,查看节点的标签

[root@k8s231 dns]# kubectl get nodes --show-labels

20-k8s中pod的调度-nodeSelector节点选择器_第2张图片

3,给节点打标签

· k8s231节点打标签

[root@k8s231 dns]# kubectl label node k8s231 k8s=xinjizhiwa-01
node/k8s231 labeled

· k8s232节点打标签

[root@k8s231 dns]# kubectl label node k8s232 k8s=xinjizhiwa-02
node/k8s232 labeled

· k8s233节点打标签

[root@k8s231 dns]# kubectl label node k8s233 k8s=xinjizhiwa-03
node/k8s233 labeled

4,编辑deploy资源清单

[root@k8s231 dns]# vim deploy.yaml 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: dm01
spec:
  replicas: 10
  selector:
    matchLabels:
      k8s: k8s
  template:
    metadata:
      labels:
        k8s: k8s
    spec:
      #基于节点标签调度pod
      nodeSelector:
        #调度到哪个标签的节点上?
        k8s: xinjizhiwa-03
      containers:
      - name: c
        image: nginx:1.20.1-alpine
        ports:
        - name: p
          containerPort: 80

5,创建资源

[root@k8s231 dns]# kubectl apply -f deploy.yaml 

没有指定节点选择器的时候

20-k8s中pod的调度-nodeSelector节点选择器_第3张图片

编辑了节点选择器之后

20-k8s中pod的调度-nodeSelector节点选择器_第4张图片

至此,节点选择器nodeSelector学习完毕;

你可能感兴趣的:(k8s系列,kubernetes,容器)