这个版本k8s强制要求了Deployment的apiVersion必须为apps/v1,且必须使用label,pod必须使用selector字段

其实好早版本就已经开始这么用了,只是现在旧的yaml文件可能没这么来,写成beta也能用,但现在新版本集群上就会报错,当然也可以使用kubectl explain Deployment 来查看不同资源的具体用法

apiVersion: apps/v1 #变化的
kind: Deployment
metadata:
  name: taint
  labels:
    app: taint
spec:
  replicas: 3
  revisionHistoryLimit: 10
  selector: #1.16.3 必须指定该字段
    matchLabels:
      app: taint
  template:
    metadata:
      labels:
        app: taint
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - name: http
          containerPort: 80
      tolerations:
      - key: "node-role.kubernetes.io/master"
        operator: "Exists"
        effect: "NoSchedule"