전공영역 공부 기록

쿠버네티스 자동 설치 스크립트

악분 2020. 12. 8. 08:09
반응형

1. 개요

안녕하세요.

제가 로컬 환경에서 쿠버네티스 설치를 자동화 하는 스크립트를 만들었는데요. 그 스크립트를 공유하고자 합니다.

'단 한줄 명령어만 입력'하면 virtualbox에 쿠버네티스가 자동으로 설치됩니다.

영상: https://youtu.be/_rCER81GP4E

 

2. 사양

테스트를 하지 않아 정확하지 않지만 램 16GB, CPU 2~4코어를 최소 사양으로 생각하고 있습니다.

쿠버네티스에 컨테이너를 실행하면 해당 컨테이너만큼 사양이 더 필요합니다. 예를 들어 엘라스틱 서치를 컨테이너로 실행하면 최소 8GB램이 더 필요합니다.

3. 준비사항

vagrant, virtualbox가 설치되어 있어야 하고 pc IP대역을 알아야합니다.

※주의: vagrant를 실행하기 위해서는 컴퓨터 이름과 계정 이름에 한글이 있으면 안됩니다.

 

3. 아키텍처

vagrant로 virtualbox VM생성을 자동화 했습니다. 최소 VM 3개(ansible server, 쿠버네티스 마스터노드, 쿠버네티스 워커노드)를 생성합니다. 스크립트를 수정하면 워커노드 갯수를 늘릴 수 있지만 그만큼 필요사양이 높아집니다. 모든 VM은 centos7 리눅스 배포판입니다. 네트워크는 bridge로 구성했습니다.

ansible을 이용해서 쿠버네티스 설치를 자동화 했습니다. ansible스크립트 설명은 이 글 주제와 어긋나서 자세한 설명은 생략합니다. 공식문서에서 설명하는 kubeadm설치 방법을 자동화했습니다.

아키텍처

 

 

4. 설치 스크립트 다운로드

스크립트는 github에 업로드했습니다. bridge브랜치치에 있는 스크립트를 다운받으시면 됩니다.

https://github.com/choisungwook/centos_kubernetes/tree/bridge

 

choisungwook/centos_kubernetes

centos_kubernetes. Contribute to choisungwook/centos_kubernetes development by creating an account on GitHub.

github.com

 

5. 설정

VM에 할당할 IP를 직접 입력해야줘야 합니다.

5.1 VM IP설정

윈도우 시스템으로 예를 들면 ipconfig명령어로 현재 IP대역을 확인합니다. 그 다음 Vagrantfile 최상단에 위치한 IP변수 3개에 적절하게 IP를 입력합니다. ANSIBLE_SERVERIP는 ansible 서버 ip, k8sMASTER_IP는 쿠버네티스 마스터 노드의 ip입니다. k8sWORKER_IP는 쿠버네티스 워커노드 ip인데 ip전체를 적지 말고 호스트 ip영역은 비워주셔야 합니다. 워커노드의 갯수만큼 실행 중에 ip를 생성하기 때문입니다.

VM IP설정

 

워커 노드의 수는 변수 N이 담당합니다.예를 들어 N이 1이면 워커 노드의 수는 1개이고 N=2이면 워커노드의 수가 2개입니다.

 

5.2 쿠버네티스 VM IP를 ansible 설정파일에 입력

ansible이 쿠버네티스 VM을 인식하기 위해 ansible_workspace/add_hosts.yaml을 수정합니다. 워커 노드는 IP 11번부터 시작해서 Vagrantfile에 설정한 N만큼 1씩 입력합니다. 예를 들어 N=1이면 192.168.219.11 ip 1개를 입력하지만 N=2이면 192.168.219.11, 192.168.219.12 총 2개를 입력해야 합니다.

ansible 설정파일 수정

 

6. 스크립트 실행

※주의: vagrant를 실행하기 위해서는 컴퓨터 이름과 계정 이름에 한글이 있으면 안됩니다.

vagrantfile이 있는 곳에 cmd창을 킵니다. 그리고 'vagrant up'명령을 입력하면 스크립트가 실행됩니다. 약 10~30분정도 기다리시면 설치가 완료됩니다.

정상적으로 설치되면 오류 메세지가 뜨지 않고 failed=0으로 표시됩니다.

설치 성공

 

7. 쿠버네티스 원격 접속

putty를 이용해서 마스터 노드에 접속하시면 됩니다. 기본 사용자와 비밀번호는 vagrant/vagrant입니다.

8. 쿠버네티스 실행 확인

nginx같은 간단한 컨테이너를 실행하면 됩니다. 이 과정은 영상 8:46초부터 설명하고 있습니다.

반응형