Получение ошибки проверки при попытке применить файл Yaml в AKS - PullRequest
0 голосов
/ 05 февраля 2019

Я следую вместе с этим учебником.Я на этапе развертывания с помощью команды:

kubectl apply -f azure-vote-all-in-one-redis.yaml

Файл YAML выглядит следующим образом:

version: '3'
services:
  azure-vote-back:
    image: redis
    container_name: azure-vote-back
    ports:
        - "6379:6379"

  azure-vote-front:
    build: ./azure-vote
    image: azure-vote-front
    container_name: azure-vote-front
    environment:
      REDIS: azure-vote-back
    ports:
        - "8080:80"

Однако я получаю сообщение об ошибке:

error validating data: [apiVersion not set, kind not set]; if you choose to ignore these errors, turn validation off with --validate=false

Если я добавлю apiVersion и Kind, например:

apiVersion: v1
kind: Pod

Тогда я получу ошибку:

error validating data: ValidationError(Pod): unknown field "services" in io.k8s.api.core.v1.Pod

Я что-то здесь упускаю?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Похоже, вы пытаетесь применить YAML-файл Docker Swarm / Compose к вашему кластеру Kubernetes.Это не будет работать напрямую без конвертации.

Использование такого инструмента, как Kompose, для конвертации вашего Docker YAML в k8s YAML - полезный шаг для перехода с одного на другой.

Для получения дополнительной информации см.https://kubernetes.io/docs/tasks/configure-pod-container/translate-compose-kubernetes/

0 голосов
/ 05 февраля 2019

поэтому, во-первых, каждое определение yaml должно соответствовать спецификации AKMS: apiVersion, kind, metadata, spec.Кроме того, вы должны избегать pod и использовать развертывания.Поскольку развертывания обрабатывают модули самостоятельно.

Вот пример определения обратной связи \ front:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: azure-vote-back
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: azure-vote-back
    spec:
      containers:
      - name: azure-vote-back
        image: redis
        ports:
        - containerPort: 6379
          name: redis
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-back
spec:
  ports:
  - port: 6379
  selector:
    app: azure-vote-back
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: azure-vote-front
spec:
  replicas: 3
  strategy:
    rollingUpdate:
      maxSurge: 60%
      maxUnavailable: 60% 
  template:
    metadata:
      labels:
        app: azure-vote-front
    spec:
      containers:
      - name: azure-vote-front
        image: aksrg.azurecr.io/azure-vote-front:voting-dev
        ports:
        - containerPort: 80
        env:
        - name: REDIS
          value: "azure-vote-back"
        - name: MY_POD_NAMESPACE
          valueFrom: {fieldRef: {fieldPath: metadata.namespace}}
      imagePullSecrets:
      - name: k8s
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-front
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: azure-vote-front
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...