作用说明

PodNodeSelector准入控制器通过读取名称空间注解(scheduler.alpha.kubernetes.io/node-selector)和全局配置,为名称空间中的pod设置节点选择器默认值并添加节点选择器限制

使用示例

apiVersion: v1
kind: Namespace
metadata:
  name: default
  annotations:
    scheduler.alpha.kubernetes.io/node-selector: 'team=czhfe'
---
# 工作负载不添加节点选择器配置,创建出来pod自动添加上面配置的节点选择器
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: default
  labels:
    app: nginx
    version: 1.20.2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
      version: 1.20.2
  template:
    metadata:
      name: nginx
      labels:
        app: nginx
        version: 1.20.2
    spec:
      containers:
        - name: nginx
          image: registry.cn-shenzhen.aliyuncs.com/huis/nginx:1.20.2-alpine
          imagePullPolicy: IfNotPresent
          ports:
            - name: http
              containerPort: 80
      restartPolicy: Always

注意事项

PodNodeSelector准入控制器默认情况下是被禁用的,开启方法如下:

# 在kube-apiserver中启用PodNodeSelector控制器插件
kube-apiserver --enable-admission-plugins=PodNodeSelector,<其它准入控制器>