您的位置 首页 kubesphere

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

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章