kubernetes 영구 볼륨을 생성할 수 없습니다. "서버가 요청한 리소스를 찾을 수 없습니다."

kubernetes 영구 볼륨을 생성할 수 없습니다. "서버가 요청한 리소스를 찾을 수 없습니다."

로컬 kubernetes 클러스터에서 nfs 기반 영구 볼륨을 생성하려고 하면 다음 오류가 발생합니다.

# 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

도움이 되었는지 알려주시기 바랍니다.

편집하다:

그러나 유효하다고 해서 yamlKubernetes에 대한 유효한 입력이 있다는 의미는 아닙니다. 추가 조사를 위해서는 다음을 수행해야 합니다.kubectl버전을 업그레이드하세요.

버전 1.15로 업그레이드한 후에는 다음 대신 유효성 검사 문제가 있는 정확한 행을 보여주는 자세한 오류 메시지를 얻을 수 있습니다.the server could not find the requested resource;

간단히 말해서:

  • kubectl1.15로 업그레이드
  • 명령을 다시 실행
  • 어떤 줄이 문제를 일으키는지 확인하세요
  • 줄을 수정하고 명령을 다시 실행하십시오.

관련 정보