Когда я пытаюсь создать постоянный том на основе 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"}
Эта ошибка означает, что ваш 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