Назад | Перейти на главную страницу

Необходимые изменения для перехода на Kubernetes 1.16

У меня есть многокомпонентная платформа, на которой я создал для нее необходимые диаграммы управления, и она правильно работала на Kubernetes <= 1.15.

Теперь мне нужно подготовить их для совместимости с k8s 1.16. Я думал, что достаточно поменять extensions/v1beta1 к apps/v1 но после того, как я попытался установить диаграммы управления на k8s, я получил эту ошибку:

Error: release test166 failed: Deployment.apps "bridge-http" is invalid: [spec.selector: Required value, spec.template.metadata.labels: Invalid value: map[string]string{"io.kompose.service":"bridge-http"}: `selector` does not match template `labels`]

И это мой файл yaml / helm, который работает на старых k8:

---
apiVersion: v1
kind: Service
metadata:
  annotations:
    Process: bridge-http
  creationTimestamp: null
  labels:
    io.kompose.service: bridge-http
  name: bridge-http
spec:
  ports:
  - name: "9995"
    port: 9995
    targetPort: 9995
  selector:
    io.kompose.service: bridge-http
status:
  loadBalancer: {}
---
# apiVersion: extensions/v1beta1
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    Process: bridge-http
  creationTimestamp: null
  labels:
    io.kompose.service: bridge-http
  name: bridge-http
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: bridge-http
    spec:
      containers:
      - args:
        - bash
        - -c
        - npm start
        env:
        - name: WWS_BRIDGE_HTTP_BROKER_DATA_USER
          value: {{ .Values.WWS_BRIDGE_HTTP_BROKER_DATA_USER | quote }}
        image: {{ .Values.image }}
        name: bridge-http
        readinessProbe:
          tcpSocket:
            port: 9995
          initialDelaySeconds: 5
          periodSeconds: 15
        ports:
        - containerPort: 9995
        resources:
          requests:
            cpu: 0.1
            memory: 250Mi
          limits:
            cpu: 2
            memory: 5Gi
      restartPolicy: Always
      imagePullSecrets:
      - name: wwssecret
status: {}

Я не нашел здесь ничего об изменениях в селекторах и таблицах: https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/

Итак, почему я получаю эту ошибку и как ее решить?

В рамках обновления 1.16 мы изменили extension / v1beta1 на apps / v1. Наряду с этим вам необходимо добавить ниже фрагмент в основной спецификации.

kind: Deployment
metadata:
  annotations:
    Process: bridge-http
  creationTimestamp: null
  labels:
    io.kompose.service: bridge-http
  name: bridge-http
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: bridge-http  
  selector:
    matchLabels:
      app: bridge-http