kubectl 원격 접속 설정

kubectl 은 Kubernetes Client 이다. 이 명령어는 HTTP 통신을 기반으로 Kubernetes Controller 와 RestFul API 통신을 요청하고 결과를 받아 사용자에게 출력하게 하는 역할을 한다.

HTTP RESTFUL API 통신을 한다는 말을 듣는 순간 직감했겠지만 인터넷만 된다면 kubectl 은 어느 컴퓨터에서든 실행이 가능하다. 처음 Kubernetes 설치문서들을 보면 대부분 Master Node 에서 실행되도록 설정을 하는데, 여기서는 다른 컴퓨터에서 kubectl 만 설치해서 Kubernetes Controller 와 연결하는 방법에 대해서 살펴보도록 할 것이다.

설치환경

설치 환경은 Mint Linux 19.2 – XFCE4 환경에서 진행했다. kubectl 를 실행하는 환경는 다양하겠지만 제일 편한 것으로는 Unix 환경일 것이다. Mac OS X, Linux 가 가장 적합한데, 필자는 Mint Linux 19.2 – XFCE4 데스크탑을 사용하고 있음으로해서 이 환경에서 진행하게 됐다.

Mint Linux 19.2 는 Ubuntu 기반이기 때문에 Ubuntu 에서 설치, 설정 모두 동일하다고 생각하면 된다.

kubectl 설치하기

Mint Linux 19/2 에서 설치하는 방법은 Ubuntu 에서 설치하기와 동일하다. 단, 여기서는 kubectl 패키지만 설치하면 된다. root 계정으로 다음과 같이 한다.

mint-Desktop:~# sudo apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
mint-Desktop:~# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
mint-Desktop:~# apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
mint-Desktop:~# apt clean all
mint-Desktop:~# apt update
mint-Desktop:~# apt install kubectl

설치는 별다른 이상이 없는한 문제 없이 진행된다.

kubectl 설정하기

kubectl 명령은 일반계정으로 사용하길 권고 하기 있다. kubectl 은 일반 계정에서 .kube/config 파일을 참조한다. 파일의 내용을 볼수도 있지만 다음과 같이 명령어로도 같단히 확인할 수 있다.

kmaster:~/.kube$ kubectl config view 
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.96.14:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

config 설정을 kubectl config 명령어를 통해서 가능하지만 복잡해 보인다. 손쉬운 방법을 찾게 되는데, 그 방법은 바로 Master Node 를 초기화 할때에 나오는 것을 참고하면 된다.

To start using your cluster, you need to run the following as a regular user:
 
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Master Node 초기화 때 나오는 출력에 설정관련 내용이 나온다. Master Node 에서 Mint Linux 19.2 에 일반계정으로 config 를 복사해보자.

mint-Desktop:~$ mkdir .kube
mint-Desktop:~$ cd .kube
mint-Desktop:~$ scp systemv@192.168.96.14:./.kube/config .
mint-Desktop:~$ systemv@192.168.96.14's password: 
config

이렇게 한 후에 다음과 같이 샘플 명령어를 쳤을때에 나오면 정상이다.

mint-Desktop:~$ kubectl get nodes
NAME      STATUS   ROLES    AGE   VERSION
kmaster   Ready    master   44h   v1.15.3
knode     Ready    <none>   44h   v1.15.3

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다