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 계정으로 다음과 같이 한다.
1 2 3 4 5 6 7 8 9 10 11 |
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 파일을 참조한다. 파일의 내용을 볼수도 있지만 다음과 같이 명령어로도 같단히 확인할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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 를 초기화 할때에 나오는 것을 참고하면 된다.
1 2 3 4 5 |
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 를 복사해보자.
1 2 3 4 5 |
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 |
이렇게 한 후에 다음과 같이 샘플 명령어를 쳤을때에 나오면 정상이다.
1 2 3 4 |
mint-Desktop:~$ kubectl get nodes NAME STATUS ROLES AGE VERSION kmaster Ready master 44h v1.15.3 knode Ready <none> 44h v1.15.3 |