Невозможно создать постоянный том kubernetes «сервер не смог найти запрошенный ресурс»

Невозможно создать постоянный том kubernetes «сервер не смог найти запрошенный ресурс»

При попытке создать постоянный том на основе nfs в нашем локальном кластере kubernetes возникает следующая ошибка:

# kubectl create -f nfs.yaml
error: error validating "nfs.yaml": error validating data: the server could not find the requested resource; if you choose to ignore these errors, turn validation off with --validate=false

Имеет nfs.yamlследующее содержание:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nfs-pv1
  labels:
    type: nfs
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.1.3
    path: "/srv/kubedata/"

Кластер kubernetes работает на трех виртуальных машинах, созданных в нашем локальном облаке openstack (установленном с помощью kubespray). Общий ресурс nfs находится на первом узле и может быть вручную смонтирован на всех узлах.

Как исправить эту проблему? Проблема в файле yaml? Как диагностировать проблему? Было бы очень полезно узнать, где именно ошибка: есть ли режим отладки для kubectl?

Обновление: Оригинальный yaml, который я опубликовал, был поврежден, но это произошло из-за того, что алгоритм цитирования переполнения стека съел несколько новых строк. Я исправил это, теперь опубликованный yaml, похоже, проходит проверкуhttps://kubeyaml.com/, так что yaml, похоже, в порядке (по крайней мере, с точки зрения синтаксиса).

Обновление2:

# kubectl version
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.0", GitCommit:"fff5156092b56e6bd60fff75aad4dc9de6b6ef37", GitTreeState:"clean", BuildDate:"2017-03-28T16:36:33Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

решение1

Эта ошибка означает, что ваш yamlфайл содержит ошибку. Самый простой способ найти ее — просто использовать один из онлайн-инструментов проверки. В вашем примере ошибка в строке 1. Ваш файл должен выглядеть так:

apiVersion: v1
kind: PersistentVolume
metadata: 
  labels: 
    type: nfs
  name: pv-nfs-pv1
spec: 
  accessModes: 
    - ReadWriteMany
  capacity: 
    storage: 1Gi
  nfs: 
    path: /srv/kubedata
    server: 192.168.1.3

Пожалуйста, дайте мне знать, если это помогло.

РЕДАКТИРОВАТЬ:

Однако, допустимый yamlне означает, что он имеет допустимый вход для Kubernetes. Для дальнейшего исследования вам нужнообновите свою kubectlверсию.

После обновления до версии 1.15 вы сможете получить подробное сообщение об ошибке, в котором будут указаны точные строки с проблемой проверки, а не просто:the server could not find the requested resource;

Суммируя:

  • обновление kubectlдо 1.15
  • выполните команду еще раз
  • посмотрите, какие строки вызывают проблему
  • исправьте строки и выполните команду еще раз

Связанный контент