• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

로컬에서 kubectl 연결하기 오류

20.03.06 18:49 작성 조회수 613

1

강좌 kubeadm 셋팅 2번째 버전으로 Hyper-v 로 3대의 가상화 컴퓨터를 만들어 클러스터 환경을 구축 하였습니다.

그리고 로컬 PC(Host PC) 에서 kubectl 명령을 실행 하기 위해 kubectl 을 설치 하였습니다.

Host PC에서 Master IP로 Dash 까지는 접속 되어 집니다.

그리고 kubectl 를 이용해 배포나 커맨드를 실행하기 위해 로컬의 .kube 디릭토리의 config 파일의 설정을 master의 config를 확인 하여 동일하게 변경 하였습니다.

그런데 접속시 인증 문제로 아래와 같은 오류가 발생 합니다.

error tls: failed to find any PEM data in certificate input

 google 을 해보니 인증키 문제로 보이나 자세한 해결 방은을 찾진 못하여 도움을 요청 하고자 합니다.

실무에서도 kubectl 커맨드는 빌드 서버나 외부 환경에서 실행 하거나 api 를 이용하여 툴을 만들어야 할 것으로 보여지는데...

혹시 어떻게 이 문제를 해결 할 수 있을지 가이드를 주실수 있을까요?

답변 3

·

답변을 작성해보세요.

1

잘되신다니 다행인이네요! (구글 검색해봐야되나 걱정을..)

admin.conf 와 config view는 같은 내용입니다.

kubectl config view가 admin.conf를 표시하는거고요.

kubectl config view로 봤을때는 client-key-data 등의 인증 내용들이 삭제되서 표시되는거 말고는 차이가 없네요.

이전에 했을때는 인증 내용들이 잘못 되었었나봅니다...

저야말로 강의들어주셔서 감사하고요!

시간되실때 수강평도 부탁드려요^^

1

hj.lee님의 프로필

hj.lee

질문자

2020.03.09

정성스런 답변 너무나도 감사합니다.

우선 저의 master의 캡쳐 화면을 보면 admin.conf 와 kubectl config view 의 내용이 다릅니다.

그래서 Host PC 에서의 config는 kubectl config view 에서 나오는 내용과 동일하게 맞추었습니다.

혹시 admin.conf 와 config view 차이를 혹시 알수 있을까요?

admin.conf 의 내용을 Host 의 config 로 설정하니 잘 동작 하는것 같습니다.

그리고 호스트의 kubectl 은 마스터의 버전인 1.15.5 와 동일하게 맞추었습니다.

너무나도 감사합니다.

1

안녕하세요. 

일단 어느 PC에서건 kubectl을 설치하고 master의 config를 그대로 가져와서 사용한다면 접속이 가능해야합니다.

저도 Host PC는 window지만, window용 kubectl을 설치해서 mater의 config 파일로 kubectl 명령으로 다른 IP에 있는 리눅스 master에 똑같은 kubectl 명령을 날리고요.

여러 클러스터가 있을 경우 kubectl의 config 명령으로 클러스터를 변경해가며 사용할 수도 있습니다.

config 관련 명령은 아래 링크 달아놨고요. 추후 필요하실때 찾아보시면 좋을듯 싶어요.

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#config

아래 내용은 제 윈도우 PC(192.168.0.20)에서 마스터(192.168.0.30)으로 kubectl을 사용하는 캡쳐입니다.

파일에 config는 master의 /etc/kubernetes 폴더에 admin.conf 파일을 가져온거고요.

대략 비슷하게 하신거 같은데 혹시라도 다른점이 있을지 확인해 보시고, 

그래도 문제가 발생하면, 일단 버전도 확인해 보셔야 할것 같아요.

제 강의내용대로 kubernetes를 설치하셨으면 1.15.5버전일텐데 호스트에 kubectl을 설치할때 혹시 최신 버전인 1.17.0 버전을 설치했는지도 확인해 보시고, 1.15.5버전의 kubectl을 설치하길 권장합니다.

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.5/bin/windows/amd64/kubectl.exe

쿠버네티스는 위아래로 1버전까지만 지원되는 경우가 많습니다. 버전차이가 2가 넘어가면 버전에 따른 문제를 보장못하고요.

그래도 안되면 저도 해당 에러를 구글링해서 좀 찾아볼께요. 검색 결과는 hj.lee과 비슷할수도 있습니다^^;