인프런 커뮤니티 질문&답변

김장환님의 프로필 이미지
김장환

작성한 질문수

대세는 쿠버네티스 [초급~중급]

Volume - 실습

PV를 만들려고 하면 에러가 발생합니다.

작성

·

1.1K

2

Deploying file has failed

the server could not find the requested resource

해당 에러가 발생하면서 생성이 안되는데 어디서 잘 못 된것일까요?

답변 11

2

실례가 안된다면,,, 제 경우를 말씀 드리면

저도 Dashboard 사용 시 저런 에러 메시지가 꽤나 빈번하게 발생했습니다.

yaml 파일 Edit 할때도 내용이 나오지 않고 빈 화면만 나오는 경우도 제법 있었구요.

Dashboard UI 도 강의와 약간 다른게 UI 버젼 문제인것 같습니다.

저런 경우 콘솔에서 yaml 로 만들어서 kubectl apply -f ... 명령으로 실행하면 다 동작했습니다.

1

김장환님의 프로필 이미지
김장환
질문자

apVersion: v1 추가시 잘 작동 하네요

유일하게 PV를 dashboard에서 생성 시도하면 작동이 안하네요.. pvc역시  dashboard에서 정상 작동합니다.

skip 추가된 상태입니다.

      - args:

        - --auto-generate-certificates

        - --namespace=kubernetes-dashboard

        - --enable-skip-login

나머지  권한 부분도 따라서 등록한 상태입니다.

1

일프로님의 프로필 이미지
일프로
지식공유자

아. 제가 강의 PPT에 잘못 명시한 내용을 발견했네요;

쿠버네티스  버전은 1.16에서 dashboard가 2.0beta4 이어야 되는게 맞습니다. 

PPT에는 1.15버전이라고 해놨네요;; (수정해야겠습니다)

1.15 버전이거나 그 밑에 버전은 dashboard recommanded 버전인 1.10 버전을 설치해야 되는거고요.

Kubernetes (1.15) - Dashboard (1.10)으로 하셨다면 Dashboard 설치 후에 Dashboard에 클러스터 권한을 주는 방법은 제가 부록에 정리한 내용과는 다르고요.

혹시 김장환님께서는 Kubernetes (1.16) - Dashboard (2.0 beat4)로 하셨을때 아래 방법으로 Dashboard를 설치 하셨나요?

--------------------------

접속시 인증 Skip 설정
아래 명령을 통해 수정 모드로 들어가서

kubectl -n kubernetes-dashboard edit deployments.apps kubernetes-dashboard

아래 내용 찾아서 --enable-skip-login 추가

-------------------------------
    spec:
      containers:
      - args:
        - --auto-generate-certificates
        - --enable-skip-login
-------------------------------

Dashboard의 ClusterRole 내용을 지우고

cat <<EOF | kubectl delete -f -
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kubernetes-dashboard
EOF	

모든 권한으로 리소스에 접근할 수 있도록 ClusterRole 새로 추가

cat <<EOF | kubectl create -f -
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
rules:
  - apiGroups: ["*"]
    resources: ["*"]
    verbs: ["*"]
EOF	

-----------------

terminal에서 kubectl 명령을 사용하시는건, admin(cluster) 권한으로 하시는 거기 때문에 PV가 잘 만들어지는게 맞고요. PVC도 당연히 잘 만들어져야 되는데,

사용하신 pvc01.yaml 내용이 혹시

kind: PersistentVolumeClaim
metadata:
  name: pvc-04
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1G
  storageClassName: ""

이 내용인가요??

그렇다면 이것도 제가

apiVersion: v1

를 빼먹었네요...^^;

1

김장환님의 프로필 이미지
김장환
질문자

두분 답변 갑사드립니다. 덕분에 해결은 됬는데

해결은 이장환님 말씀처럼 terminal에서 콘솔명령으로 생성하니 정상 작동했습니다. (같은 이름 반갑네요 ^^)

현재 제가 사용중인 k8s버전은 1.6이며 dashboard가 2.0베타4입니다.

다른 pod나 object들은 정상적으로 생성되는데 PV생성에서만 문제가 발생하였던것입니다.

PV가 해결되니 PVC가 또 생성안되네요. 보드에선 groupVersion shouldn't be empty 라고 나오며 콘솔이용해도 오류가 발생합니다. 재설치를 해봐야될까요?

0

저도 윗분이랑 동일한 문제가 발생하는데

 

혹시 강의는 있는데 더이상 질문은 안 받나요?

저는 namespace를 "모든 네임스페이스" -> "default"로 변경 후 문제가 해결되었어요

0

안녕하세요 

Pod를 생성하려고 하니 위와 동일한 문제가 발생하네요 

하기 사항을 데시보드에서 입력했고 Deploying file has failed 라고 나오네요..

위에서 말씀하신 대로 모든 권한으로 리소스에 접근할 수 있도록 ClusterRole 새로 추가는 했는데도 안되네요..  혹시 방법이 있을까요?

apiVersion: v1

kind: Pod

metadata:

  name: pod-1

spec:

  containers:

  - name: container1

    image: kubetm/p8000

    ports:

    - containerPort: 8000

  - name: container2

    image: kubetm/p8080

    ports:

    - containerPort: 8080

0

일프로님의 프로필 이미지
일프로
지식공유자

해당 부분에 대해서 고민을 많이 해봤습니다 ^^

결론을 말씀드리면, 

현재 강의실습영상 (쿠버네티스:v1.15, 대시보드v1.10), 설치영상(쿠버:v1.16, 대시보드:v.2.0) 으로 되어 있는데,

강의실습영상과 설치영상을 모두 쿠버네티스:v1.15, 대시보드v1.10 버전으로 마출려고 합니다.

대시보드 2.0부터는 인증이 강화되서 설치하고 사용하는 방법이 초급편에서 다루기엔 다소 복잡해 진부분도 있고, 

UI도 좀 변경됐는데 실습하는데 크게 문제는 없지만 그래도 실습영상과 달라 혼선을 줄 수 있는 부분도 간과할 수 없을 것 같네요.

 중급편에서 최신 버전(쿠버v1.16, 대시보드:v.2.0)으로 실습을 진행할 예정인데, 

이때 최신 버전에 대한 설치 방법과, 이전버전을 사용하고 있는 분들께는 업그레이드를 하는 방법을 별도로 안내해 드릴려고 합니다. 

이번 주중에 작업을 하고 완료되면 공지 드릴께요.

감사합니다.

0

일프로님의 프로필 이미지
일프로
지식공유자

일단 어느정도 문제는 파악되었구요.

새로운 버전 사용에는 항상 새로운 문제들이 있네요^^;

제가 강의했던 버전은 이전 버전이고 쿠버네티스 설치는 현재 최신 버전이라 제가 실습내용을 새 버전에서 다시 확인하지 못한 잘못이 큽니다 ㅠㅜ

김장환님 질문이 없었으면 저도 인지 못했을 부분이라 감사드리고요.

대시보드 설치는 제가 현재 외부에 있어서, 들어가는 대로 검토해보고 재설치 방법을 알려드릴께요.

그리고 다음주에는 이런 문제들이 없도록 새 설치 버전으로 다시 한번 실습을 검토할 계획입니다.

실습하시는데 불편을 드려서 죄송해요. (--)(__) 꾸벅

0

일프로님의 프로필 이미지
일프로
지식공유자

음...제가 권한쪽 설정을 다시 한번 확인해 볼께요. 

추가적인 설정이 더 필요해 보이네요.

0

일프로님의 프로필 이미지
일프로
지식공유자

이장환님 말씀대로라면 dashboard를 설치하실때 권한설정 문제로 보입니다. 

대시보드도 하나의 pod라고 보시면 되는데요.

그 pod를 설치할때 다른 namespace나 혹은 cluster에 대한 접근 권한이 없어서 그렇습니다.

PV는 Cluster 권한이 있어야 조회 할 수 있는 리소스거든요.

그래서 대시보드 설치 후 대시보드에게 클러스터권한을 주는 설정을 추가해야되고요.

제가 해봤을때 쿠버네티스 버전과 dashboard버전에 따라 그런 문제가 있었습니다.

쿠버네티스 버전이 1.16라면 dashboard를 제 부록에 있는 예제와 같이 2.0 베타버전을 사용하셔야되고요.

쿠버네티스 1.15 버전 밑으로 사용했을때 dashboard 현재 공식 버전인 1.10을 사용해서 Dashboard를 설치 후에 클러스터 권한을 줘야해요.

각각 어떻게 버전을 사용하고 계신가요?

0

일프로님의 프로필 이미지
일프로
지식공유자

안녕하세요. 김장환님,

the server could not find the requested resource

해당 에러는 보통 정상적으로 Api Server로 통신이 안됐을때 볼 수 있는 에러인데요,

좀더 내용을 파악하기 위해서 몇가지 질문을 드릴께요.

1. 현재 Pod나 Service 등 다른 Object들은 만들어 지는데 PV 생성을 할때만 문제가 되는건가요?

2. 생성하려는 PV 내용과 Dashboard를 통해서 만드신 건지, kubectl 명령을 통해서 만드시는 거라면 사용하신 명령어도 알려주시고요.

김장환님의 프로필 이미지
김장환

작성한 질문수

질문하기