본문 바로가기

프로그래밍/kubernetes

linux에 설치된 kubernetes를 윈도우에서 kubectl로 이용해보자

개인적으로 요즘 한창 떠오르고 있는 Kubernetes의 자격증에 도전하다보니 두서없이 kubernetes를 공부하고 있다. 개인적으로 AWS나 GCP를 이용할 여건이 못되어서 Vagrant + VirtualBox 조합으로 CentOS 가상머신 3대에 master node 1대와 worker node 2대로 구성해서 해보고 있다. docker를 container runtime 으로 사용하는 구성은 이미 마쳤으나 최근에 1.20이 나오면서 docker를 container runrime으로 사용하는것을 deprecated 하겠다고 해서 현재 cri-o를 container runtime으로 사용하는 구성을 해보고 있는데 계속 삽질중이다..

 

이 와중에 google cloud code 를 이용한 배포를 우연찮게 봤는데 이걸 할려면 kubectl을 윈도우에서 실행시킬수 있는 환경이어야 했다. 그러나 나는 kubernetes를 centos 가상머신에 설치하다보니 이걸 Windows에서 실행시킬 방법이 있을까 해서 찾아봤고 결국 이를 성공했기에 내 자신의 기록보관 차원및 나 처럼 윈도우에서 kubectl을 실행해서 원격kubernetes에 접속해서 실행하는 방법을 알고 싶은 사람에게 정보공유 차원에서 글을 적게 되었다.

 

결론부터 애기하자면 2가지 Step만 밟으면 된다.

 

  • kubectl을 다운로드 받아 C:\Windows\system32 디렉토리에 복사해두기
  • kubectl이 이용하게 될 원격접속 설정해두기

첫번째로 kubectl을 다운로드 받는것은 윈도우에 Kubectl 설치 를 보면 kubectl 다운로드 주소가 있다. 이 주소를 브라우저 주소로 입력하면 다운로드 창이 나오면서 원하는 곳에 다운로드 받을수 있다. 이렇게 다운로드 받은뒤 C:\Windows\system32 에 복사한다(꼭 여기가 아니어도 된다. 다만 Path에 설정되어 있는 폴더여야만 한다)

 

두번째로 kubectl이 이용하게 될 원격접속 설정해두는 작업이 있는데 이것은 다음과 같이 진행하면 된다. kubernetes의 master node 역할을 하는 서버에 접속한 뒤 kubernetes를 이용할 수 있는 계정 디렉토리를 가보면 다음과 같이 숨은 디렉토리로 kube 디렉토리가 있다.

 

kube 디렉토리가 있는 master node 계정

이 숨어있는 kube 디렉토리를 다운로드를 받아둔다. 나 같은 경우는 vagrant의 디렉토리 공유 기능을 이용해 공유되어 있는 디렉토리로 복사해서 Windows 에서도 이 복사된 kube 디렉토리를 접근할 수 있게끔 했다. 그리고 이 디렉토리를 Windows의 사용자 디렉토리에 있는 Windows 계정 디렉토리에 복사해둔다(C:\Users\윈도우 사용자 계정이름)

 

이러면 다 끝났다. 가상머신에 접속해서 kubectl을 실행하지 않아도 Windows에서 cmd 창을 열은뒤 다운로드 받은 kubectl 을 이용해 가상머신에 있는 kubernetes에 접속해서 관련 명령(ex : kubectl get pods 등)을 실행할 수 있다. 아래 그림은 cmd 창에서 kubectl 을 실행한 모습이다. 내부적으로는 가상머신의 kubernetes master node에 원격으로 접속해서 해당 결과를 보여주는 것이다.

 

Windows에서 kubectl을 실행한 결과

 

보안이 엄격하게 적용되는 곳에서는 이 방법을 사용하지 못할수도 있겠지만 나 같이 공부 목적으로 개인 PC에 가상머신을 통해 kubernetes를 구축했거나 자기 계정이 있는 AWS나 GCP에서는 사용할 수 있는 방법이어서 한번 정리해봤다.