Ошибка BadRequest при развертывании файла yaml - PullRequest
0 голосов
/ 24 октября 2019

получена ошибка неверного запроса при развертывании файла yaml в кластере kubernetes.

Error from server (BadRequest): error when creating "deployment.yaml": service in version "v1" cannot be handled as a Service: no kind "service" is registered for version "v1" in scheme "k8s.io/kubernetes/pkg/api/legacyscheme/scheme.go:29"
Error from server (BadRequest): error when creating "deployment.yaml": deployment in version "v1" cannot be handled as a Deployment: no kind "deployment" is registered for version "apps/v1" in scheme "k8s.io/kubernetes/pkg/api/legacyscheme/scheme.go:29"

кластер kubernetes - это версия 1.14.7 с 2-мя нодами пула. один - это пул узлов по умолчанию с узлом linux, а другой - пул узлов Windows (количество узлов 1) для контейнеров Windows. Я вхожу в интерфейс командной строки Azure на самом портале и выполняю команды kubectl.

пробовал apiVersion: apps / v1beta1, но безрезультатно.

kubectl version

Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:36:53Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.6", GitCommit:"96fac5cd13a5dc064f7d9f4f23030a6aeface6cc", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:16Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

Вот файл deploy.yaml

apiVersion: v1
kind: Service
metadata:  
  name: sampleapp
  labels:
    app: sampleapp
spec:
  type: LoadBalancer  
  ports:
  - name: proxy
    protocol: TCP
    port: 9163
    targetPort: 9163
  - name: banyan
    protocol: TCP
    port: 23010
    targetPort: 23010      
  selector:
    app: sampleapp
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sampleapp
  labels:
    app: sampleapp
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: sampleapp
    spec:
      nodeSelector:
        "beta.kubernetes.io/os": windows
      imagePullSecrets:
        - name: docker-secret
      containers:
      - name: proxyservice
        image: docker.azurecr.io/proxyservice:326
        ports:
        - containerPort: 9163        
        env:
        - name: sup_hostname
          value: "xac-dev-docker4.eastus.cloudapp.azure.com"
      - name: syncservice
        image: docker.azurecr.io/syncservice:326
        ports:
        - containerPort: 23010
        env:
        - name: broker_hostname
          value: "" 
  selector:
    matchLabels:
      app: sampleapp

Ожидаемый результат - развертывание файла yaml.

не уверен, связано ли это с отступом файла. Файл yaml неправильный или я что-то упустил?

1 Ответ

1 голос
/ 24 октября 2019

Как указано в описании ошибки, проблема связана с совместимостью версий YAML для развертывания.

no kind "service" is registered for version "v1"

Это означает, что тип ресурсов service не распознается API Kubernetes с версией v1 , как упомянуто в развертывании yaml's apiVersion: v1

Попробуйте

Эта проблема имеет решение, которое заключается в использовании соответствующего apiVersion в YAML развертывания. введите описание ссылки здесь

Вот несколько ссылок.


Несоответствие версии клиента и сервера

Также стоит упомянуть несоответствие версий между версией клиента и сервером kubernetes. Kubernetes поддерживает совместимость master, стоящего за клиентом, одной минорной версией, но это не очень рекомендуется. Поскольку ваши версии имеют две минорные версии, я бы порекомендовал сделать так, чтобы сервер соответствовал версии клиента.

Справочник - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/release/versioning.md#supported-releases-and-component-skew

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...