Не удалось развернуть yaml в кластере Kubernetes в Azure

У меня есть один образ, который я пытаюсь развернуть в кластере AKS. Образ хранится в реестре контейнеров Azure, и я просто пытаюсь применить файл YAML, чтобы загрузить его в AKS, используя следующую команду:

kubectl apply -f myPath\myimage.yaml

kubectl продолжает жаловаться, что мне не хватает обязательного поля «селектор» и что поле «спецификация» неизвестно. Это похоже на базовую конфигурацию образа, поэтому я не знаю, что еще попробовать.

kubectl : error: error validating "myimage.yaml": error validating data: [ValidationError(Deployment.spec): unknown field "spec" in io.k8s.api.apps.v1.DeploymentSpec, ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec]; if you choose to ignore these errors, turn validation off with --validate=false At line:1 char:1

apiVersion: apps/v1
kind: Deployment
metadata:
    name: myimage
spec:
    replicas: 1
    template:
        metadata:
            labels:
                app: myimage
    spec:
        containers:
        - name: myimage
          image: mycontainers.azurecr.io/myimage:v1
          ports:
          - containerPort: 5000
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
2 177
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Как указано в сообщении об ошибке, для развертывания требуется поле селектора внутри спецификации. Вы можете посмотреть по ссылке несколько примеров.

Также обратите внимание, что есть два поля спецификаций. Один для развертывания и один для модуля, используемого в качестве шаблона. Ваша спецификация для стручка смещена. Он должен быть на один уровень глубже.

Ответ принят как подходящий

У вас неправильный отступ второго поля spec, а также вы пропустили selector в первом spec:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: myimage
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myimage
  template:
    metadata:
      labels:
        app: myimage
    spec:
      containers:
      - name: myimage
        image: mycontainers.azurecr.io/myimage:v1
        ports:
        - containerPort: 5000

Другие вопросы по теме