2-1. Kubernetes 설치하기
2021. 6. 16. 17:46ㆍDevOps/Kubernetes
1. Kubernetes 설치하기
쿠버네티스를 설치하는 방법은 크게 세 가지로 나눠볼 수 있습니다.
- 시스템에 직접 설치
- 퍼블릭 클라우드에 설치(GKE, EKS, AKS)
- 온프레미스 환경에 설치
그럼 쿠버네티스를 설치 없이 사용할 수 있는 방법과 가상 머신에 직접 설치하는 방법 두 가지를 살펴보겠습니다.
1-1. 설치 없이 쿠버네티스 사용하기
쿠버네티스를 설치하지 않고 웹 UI를 이용해 사용하는 방법을 알아보겠습니다.
- 카타코다 쿠버네티스 플레이그라운드 (1시간 사용 가능. Master, node1이 구성되어 있어 바로 사용 가능)
- 'START SCENARIO' 클릭
- 화면에 master와 worker node가 분리되어 표현됩니다.
- 'launch.sh'를 클릭해 master를 실행해줍니다.
- 실행 가능한지 확인하기 위해서 'kubectl cluster-info' 명령어를 클릭해 확인합니다.
- master 콘솔에서 'kubectl get nodes' 명령어를 입력해 진짜 실행 중인지 확인합니다. - Play with Kubernetes (4시간 사용 가능. Master, worker node를 직접 구성 후 사용 가능)
- github 또는 docker 계정을 통해 로그인합니다.
- 'Start' 버튼을 클릭해 실행해줍니다.
(화면 크기가 작다면 좌측의 인스턴스 탭이 숨겨지도록 반응되므로 크기를 키우시길 바랍니다)
- ADD NEW INSTANCE 클릭
- node 1이 실행되는데 이것이 Master node 입니다.
- 콘솔 화면에 출력되는 1. Initializes cluster master node:의 명령어 'kubeadm init --apiserver-advertise-address ~' 를 실행해 Master node를 초기화해줍니다.
(참고로 Linux 환경이므로 복사/붙여넣기는 Ctrl+insert/Shift+insert 입니다.)
- 컴포넌트들이 다 구성될 때 까지 기다리시면 됩니다. 1번 명령어로 Master node의 docker API, Controller, scheduler, etcd, Core DNS 등을 생성합니다.
- 설치가 완료되면 하단 부분에 'kubeadm join ~ --discovey ~' 형태의 명령어를 확인하실 수 있습니다. 이는 worker node와 join을 수행할 때 사용하는 명령어입니다.
- 2. Initialize cluster networking: 명령어로 CNI(Container Network Interface)를 설치합니다.
- 설치가 완료되면 앞서 말씀드렸듯이 'kubeadm join ~ --discovey ~' 명령어를 이용해 worker node와 연결해줍니다. worker node는 ADD NEW INSTANCE로 생성해줍니다.
- node 1에 있는 'kubeadm join ~ --discovey ~' 명령어를 복사해 node 2에 붙여넣어줍니다.
- worker node는 master node와 join되면서 필요한 컴포넌트들을 설치합니다.
CNI(Container Network Interface)
- Container간 통신을 지원하는 VxLAN. Pod Network라고도 부름
- 다양한 종류의 플러그인 존재 (flannel, calico, weavenet...)
노드끼리는 연결시켜 놓으면 잘 연결되는데 컨테이너들은 각각 고유의 IP를 갖고 있습니다. 그럼 어떻게 연결이 되는걸까요? 노드 연결만으로는 통신이 불가능합니다. 그러므로 CNI를 구상해야 합니다.
예를 들어 웹 UI 컨테이너와 로그인 컨테이너가 있다고 가정해보겠습니다. 이 둘은 서로 통신이 가능해야 합니다. 따라서 컨테이너와 컨테이너가 통신이 가능하기 위한 소프트웨어로써 CNI를 설치해줘야 합니다.
컨테이너는 CNI를 통해서 물리 네트워크로 이동하고 CNI는 타겟 컨테이너와 연결시켜줍니다.
1-2. 개인 PC에 직접 설치하기
쿠버네티스 클러스터를 직접 구성하는 도구
- kubeadm - 쿠버네티스에서 공식 제공하는 클러스터 생성/관리 도구
- kubespray - 쿠버네티스 클러스터를 배포하는 오픈소스 프로젝트
쿠버네티스 클러스터 구성
- control plane(master node)
- 워커 노드들의 상태를 관리하고 제어
- single master
- multi master(3, 5개의 master nodes) - worker node
- 도커 플랫폼을 통해 컨테이너를 동작하며 실제 서비스 제공
실습용으로 master node 1대, worker node 2대를 설치해보겠습니다.
control plane : master.example.com / Ubuntu 20.04 LTS
worker node 1/2 : node1.example.com/node.example.com / Ubuntu 20.04 LTS
자세한 설치 방법은 링크를 공유하겠습니다.
간단하게 프로세스를 설명하자면...
- Virtualbox 설치
- Ubuntu 20.04 LTS 다운로드
- K8s의 master로 사용할 VM 생성 및 Ubuntu:20.04 설치
- Ubuntu install 진행
- root 패스워드 설정
- 설치된 프로그램 업데이트 완료
- ssh server 설치 및 서비스 동작 (openssh-server, curl, vim, tree)
- Virtualbox 구성 - 클립보드 공유설정
- 가상머신 부팅 방식을 GUI에서 콘솔 로그인으로 변경
- docker install
- 가상머신 복제
- 각 시스템 snapshot을 만들어서 이후 이 시점으로 되돌리기 가능하도록 구성
이와 같은 과정으로 VM에 설치를 완료해줍니다.
'DevOps > Kubernetes' 카테고리의 다른 글
1. Kubernetes? (0) | 2021.06.15 |
---|