
При попытке создать постоянный том на основе 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 - выполните команду еще раз
- посмотрите, какие строки вызывают проблему
- исправьте строки и выполните команду еще раз