51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

kubernetes 将容器指定到某些节点运行(node selector) k8s 打标签

我想让k8s 某个服务A 只跑在 worker 4 worker5 worker6 上 ( 而且这3个节点不接受其他 服务

kubernetes 将容器指定到某些节点运行

https://www.cnblogs.com/seaskyccl/articles/16424169.html

打标签

kubectl label node node1 env-role=prod

查看标签

kubectl get nodes --show-labels

1、查看当前集群节点标签信息:

kubectl get nodes --show-labels

可以看到每个节点默认初始标签大致如下

beta.kubernetes.io/arch=amd64,
beta.kubernetes.io/os=linux,
kubernetes.io/arch=amd64,
kubernetes.io/hostname=node2,
kubernetes.io/os=linux

2、通过部署类型标签将worker 5, woker6 节点标记为业务应用 suno,

kubectl label nodes worker2 deploy.type=suno

kubectl label nodes worker5 deploy.type=suno

kubectl label nodes worker6 deploy.type=suno

然后用 命令来验证一下,是否有标签了

kubectl get nodes --show-labels

deploy.type=suno

然后Pod指定配置如下:

apiVersion: apps/v1
kind: Pod
metadata:
  name: nginx-pod
  namespace: my-namespace
  labels:
    app: nginx-pod
spec:
     nodeSelector:
       deploy.type: assembly_app
     restartPolicy: Always
     containers:
     - name: nginx
       image: "nginx"
       ports:
        - containerPort: 80

如果是 kubesphere 那么如下配置:

这个是在新创建应用的时候才有,如果对已经部署好的怎么办呢?需要再 yaml 中配置如下

找到 yaml 文件

      nodeSelector:
        deploy.type: suno

复制上边的,连前边的空格也要复制, 然后粘贴进去就可以。 kind: Deployment

赞(1)
未经允许不得转载:工具盒子 » kubernetes 将容器指定到某些节点运行(node selector) k8s 打标签