0. 들어가며
Kubernetes 강의를 들어보면 대부분 Vagrant나 Minikube와 같은 것으로 클러스터를 구축한다. 이 부분이 항상 아쉬운 부분이다. 물론 수강생들의 수강 환경이 천차만별이기 때문에 이를 통일해야 강의 진행에 무리가 없다는 점에서 이해가 되는 부분이 있지만, 그럼에도 불구하고 Kubernetes 클러스터를 한 땀 한 땀 구축해 나가는 건 매우 중요한 경험이라 생각한다.
혹시라도, VM이나 Baremetal 환경에서 손수 Kubernetes 클러스터를 구축하고자 하는 분께 도움을 드릴 수 있다면 좋겠다는 생각과, 또 개인적으로 진행하고 있는 토이 프로젝트에 대한 작업 기록을 위해 해당 포스팅을 작성해 본다.
1. 인프라 구성
본 포스팅에서는 VMware사의 서버용 가상화 솔루션인 vSphere를 사용하려고 한다. 이외에도 VMware Workstation이나 Oracle Virtual Box 등 VM을 활용할 수 있는 환경이라면 문제없이 Kubernetes 클러스터를 구성할 수 있을 것이라고 생각한다.
호스트 이름 | IP 주소 | OS | 사양 | 역할 |
k8s-cp | 192.168.0.150 | Ubuntu 22.04.3 LTS Live Server |
vCPU : 4 EA Memory : 4GB Storage : 60GB |
컨트롤 플레인 |
k8s-w01 | 192.168.0.151 | 워커 노드 |
||
k8s-w02 | 192.168.0.152 | |||
k8s-w03 | 192.168.0.153 |
참고 : Kubernetes 구성을 위한 VM의 최소 사양은 2 vCPU와 2GB의 메모리가 필요
Kubernetes 클러스터의 머리 역할을 하는 컨트롤 플레인 노드 1대와 실제 워크로드를 구동하는 워커 노드 3대로 클러스터를 구성할 예정이다. 네트워크의 경우 인터넷과 연결된 상태여야 Kubernetes 설치가 가능하다.
2. 작업 순서
1) k8s-cp용 VM 생성 및 Ubuntu 22.04 설치
2) Kubernetes 클러스터 구성을 위한 공통 설정 작업
3) 설정 작업이 끝난 k8s-cp용 VM 전원 끈 후 워커 노드로 복사
4) 각 노드별 호스트 이름과 IP 주소 변경
5) kubeadm을 통한 kubernetes 클러스터 구성
6) CNI 구성(Helm 차트를 통한 Cilium 설치)
3. 설치 진행
1) k8s-cp용 VM 생성 및 Ubuntu 22.04 설치
우선 k8s-cp용 VM을 생성하고 전원을 켜준다. Ubuntu 22.04.3 LTS의 경우 설치 과정 중 IP주소를 설정할 수 있는데 이때, 앞서 미리 준비해 두었던 IP주소를 아래 그림을 참고하여 입력해 주면 된다.
Name servers의 경우 Google DNS를 사용하였다. 선호하는 다른 DNS 서버 주소가 있으면 그것을 사용하여도 무방하다. Search domains의 경우 생략이 가능하다. 주소 입력이 완료 되면 다음 단계로 넘어간다. 간단한 mirror location에 대한 테스트 과정과 스토리지에 관한 설정 과정을 마치면 아래와 같이 Profile setup 단계에 들어간다.
이 과정에서 미리 서버 이름(Host name)을 정해줄 수 있다. 차후 /etc/hosts 파일을 편집할 때 유용하다. 본 포스팅에서는 username을 boot로 설정했으며 이는 다른 것으로 변경해도 무방하다.
Ubuntu 22.04.3 LTS Live Server의 경우 CLI 환경만을 지원하며, 원격에서 SSH를 통해 간편하게 제어를 하기 위해 OpenSSH server를 설치해 준다. 이 외, 다른 패키지의 경우 필요에 따라 선택하여 설치하면 된다. 설치가 완료되면 재부팅을 해준다.
4. 마무리
해당 포스팅에서는 쿠버네티스 클러스터 구성 전 Ubuntu 22.04.3 LTS 버전을 설치하는 방법에 대해서 알아 보았다. 사실 Ubuntu 설치 과정은 기본적인 내용이기도 하고, 이미 많은 곳에 포스팅이 올라와 있으므로 자세하게 다루지 않았다. 다음 포스팅에서는 본격적인 Kubernetes 클러스터 구성을 위한 과정을 다뤄 보도록 하겠다.
'DevOps > Kubernetes' 카테고리의 다른 글
[Kubernetes] HAProxy와 Keepalived를 활용한 Kubernetes API 클러스터 HA 구현 - 2편 (1) | 2023.10.22 |
---|---|
[Ubuntu 22.04] Kubernetes Cluster 구축 - 3편 (2) | 2023.10.15 |
[Ubuntu 22.04] Kubernetes Cluster 구축 - 2편 (0) | 2023.10.15 |
[Kubernetes] HAProxy와 Keepalived를 활용한 Kubernetes API 클러스터 HA 구현 - 1편 (0) | 2023.09.13 |