kubeadm을 이용해서 아주 쉽게 Kubernetes 설치하기

아주 쉽게 kubeadm을 이용해서 ubuntu 16.04에 kubernetes를 설치하는 방법입니다.
CentOS 7에서의 설치방법은 원문을 참고하시기 바랍니다.
http://kubernetes.io/docs/getting-started-guides/kubeadm/

kubernetes를 설치해보는 것은 kubernetes를 이해하는 데 좋은 출발점이 될 것으로 생각됩니다.

Google Cloud Platform에서 VM 인스턴스 생성

여기서는 Google Compute Engine에 아래와 같이 3개의 VM을 생성합니다.

  • kube-master-1
  • kube-node-1
  • kube-node-2

Imgur

이번에 새로 생긴 asia-northeast1(도쿄)을 이용했구요. asia-east1(대만)보다 확실히 빠른 응답속도를 느낄 수 있었습니다.

Imgur

이제 VM 인스턴스를 생성했으니 간단하게 환경설정을 합니다. Ubuntu 설치 후 환경설정은 아래 링크를 확인하시기 바랍니다.
ubuntu 16.04 환경설정

참고로 설치한 VM 인스턴스의 ssh 접속은 Ubuntu 리눅스에 Google Cloud SDK를 설치하고 gcloud compute ssh명령으로 접속했습니다.

Imgur

kubernetes 설치

아래 명령을 이용해서 kubernetes를 설치합니다.
설치에는 root권한이 필요하므로 sudo su -로 root권한을 얻은 후 설치를 진행하면 됩니다.
설치방법은 master와 node 동일합니다.
아래 명령을 kube-master-1, kube-node-1, kube-node-2등 모든 VM 인스턴스에서 실행합니다.

master 초기화

kubeadm init명령으로 master를 초기화합니다. Imgur

마지막 부분의 kubeadm join --token c07e38.feb309e6ea9ce270 10.146.0.2 명령을 잘 기억해야 합니다. 이 명령을 통해 node가 master에 join할 수 있습니다.
그러면 kube-node-1, kube-node-2에서 위의 명령으로 master에 join합니다.

Imgur

Imgur

master에서 kubectl get nodes 명령으로 정상적으로 node들이 join했는지 확인합니다.

Imgur

pod network add-on 설치

각각의 pod들이 통신하기 위한 pod network add-on을 설치합니다.
종류가 여러가지 있으므로 마음에 드는 add-on을 설치하면 됩니다.
http://kubernetes.io/docs/admin/addons/

여기서는 weave net을 설치합니다.

master에서 kubectl create -f https://git.io/weave-kube 명령을 실행합니다.
설치과정은 정말 간단합니다.

Imgur

pod network add-on이 정상적으로 설치되면 kube-dns의 상태가 Running으로 변경됩니다.
아래 명령으로 확인합니다.

kubectl get pods --all-namespaces  

Imgur

각각의 VM에 weave라고하는 함께 네트워크도 생성이 되었습니다.

Imgur Imgur Imgur

sample application 설치

설정이 완료된 kubernetes를 테스트하기 위하여 간단한 sock-shop이라고 하는 쇼핑몰 샘플 앱을 실행해 봅니다.

Imgur

pod들이 정상적으로 실행되었는지 확인합니다.

kubectl get pods -n sock-shop  

Imgur

sock-shop에 접속해 보기위해서 아래 명령을 실행하여 front-end service가 사용하고 있는 포트번호를 확인합니다.

kubectl describe svc front-end -n sock-shop  

Imgur

master(kube-master-1)의 외부 IP와 위에서 확인한 포트를 조합하여 접속하면 됩니다.

Imgur

http://104.198.81.158:32609/  

하지만 32609 포트는 방화벽에서 오픈되어 있지않아 접속이 불가합니다.
GCP 방화벽에서 해당 포트를 오픈합니다.

Imgur Imgur Imgur

sock-shop으로 접속합니다.

Imgur

kubernetes를 간단하게 테스트하려면 minikube를 설치하면 됩니다.
하지만, minikube는 master 하나만을 생성하므로 명령어를 익히기에는 좋으나 진정한 의미의 docker container orchestration를 구현하기 위해서는 master와 node들로 구성된 multi node cluster를 위와 같은 방법으로 구현 테스트하는 것이 좋습니다.

다음에는 kubernetes dashboard 설치와 Weave Scope서비스와 간단하게 연동해 보는 방법을 학습해 보려고 합니다.

Martin

Read more posts by this author.