쿠버네티스는 클라우드 네이티브 컴퓨팅 재단(Cloud Native Computing Foundation, CNCF)이라는 단체에서 제정한 표준이다. 쿠버네티스는 본래 구글에서 개발했지만 구글 등의 회사가 CNCF를 조직하고 이 재단에 쿠버네티스를 기부해 개발이 오픈소스로 전환되면서 급속하게 보급됐다. CNCF도 쿠버네티스를 만들고 있지만 관리 기능을 강화한 버전이나 크기를 줄인 버전 등 쿠버네티스의 규격을 따른 서드파티 소프트웨어가 여럿 나오고 있다. 특히 이중에서도 AWS나 애저, GCP 같은 클라우드 서비스에서는 자사 서비스에 맞춰 커스터마이징된 쿠버네티스를 제공한다.
쿠버네티스는 본래 대규모 시스템이 전제 조건이다. 따라서 마스터 노드와 워커 노드도 별도의 물리적 컴퓨터로 설정하지만 도커 데스크톱이나 Minikube에서는 컴퓨터 한 대에 마스터 노드와 워커 노드를 모두 구축한다. 다시 말해 물리적 컴퓨터를 따로 둘 필요가 없는 것이다.
도커 데스크톱의 쿠버네티스 준비
- 쿠버네티스 활성화: 태스크 트레이의 고래 아이콘을 클릭하고 메뉴에서 [Settings]를 선택해 도커 설정 화면을 연다. [Kubernetes] 탭에서 [Enable Kubernetes] 항목을 체크한다.
- 쿠버네티스 클러스터 설치: [Kubernetes Cluster Installation]이라는 대화창이 나타나며 설치 여부를 묻는다. [Install]을 클릭하면 쿠버네티스 클러스터가 설치된 후 실행된다.
- 쿠버네티스 클러스터 설치가 끝나면 Kubernetes가 running 상태가 된다. 단, 쿠버네티스는 컴퓨터의 리소스를 소모하므로 사용하지 않을 때는 평소 작업에 지장을 줄 수 있으므로 이런 경우에는 [Enable Kubernetes] 항목의 체크를 해제해 쿠버네티스를 비활성화한다. 또 쿠버네티스 클러스터를 초기화하려면 [Reset Kubernetes Cluster] 버튼을 클릭하면 된다.
- 쿠버네티스는 매니페스트 파일(정의 파일)에 기재된 내용에 따라 파드를 생성한다. 매니페스트 파일의 내용을 쿠버네티스에 업로드하면 그 내용이 데이터베이스(etcd)에 바람직한 상태로 등록되며, 서버 환경을 이 바람직한 상태로 유지한다.
YAML 형시으로 매니페스트 파일 작성
파드나 서비스에 대한 설정을 쿠버네티스에서는 매니페스트(manifest)라고 한다. 또 이를 적은 파일을 매니페스트 파일(저으이 파일)이라고 한다. 매니페스트 파일은 YAML 또는 JSON 형식으로 기재한다. JSON형식은 컴퓨터로 처리하는 것이 목적으로 사람이 설정 파일을 읽고 쓴다면 YAML파일을 주로 사용한다. 또한, 매니페스트 파일은 리소스 단위로 작성한다. 리소스는 파드나 서비스, 디폴로이먼ㅌ, 레플리카세트 등을 가리킨다.
매니페스트 파일에도 컴포즈 파일과 마찬가지로 주 항목이 있다. 주 항목은 네 가지이다. apiVersion: 항목에는 API 그룹 및 버전, kind: 항목에는 리소스 유형, metadata: 항목에는 메타데이터, spec: 항목에는 리소스 내용을 작성하는데 사용한다.
메타데이터 스펙 작성(디플로이먼트)
디플로에먼트의 스펙은 템플릿의 형태로 파드의 설정을 기재한다.
- 셀렉터(selector)의 설정: 디플로이먼트가 특정한 레이블이 부여된 파드를 관리할 수 있도록 하는 설정이다.
- 레플리카(Replica)의 설정: 파드의 레플리카에 대한 관리이다. 파드 수를 몇 개로 유지할 것인지 설정한다. 이 값을 0으로 설정하면 파드가 사라진다.
- 템플릿(template) 작성: 생성할 파드의 정보를 기재한다. 기재 내용은 파드에 기재된 내용(메타데이터 및 스펙)과 거의 같다.
- 디플로에먼트의 기재 항목: 디플로이먼트에서 기재되는 항목을 정리한다. 주항목 아래에 중항목, 소항목이 열거된다.
유형(type)은 서비스의 종류를 말한다. 다시 말해 외부로부터 서비스에 어떤 유형의 IP주소(또는 DNS)로 접근할지를 설정한다.
- ClusterIP: 클러스터 IP를 통해 서비스에 접근하도록 함(외부에서는 접근 불가)
- NodePort: 워커 노트의 IP를 통해 서비스에 접근하도록 함
- LoadBalancer: 로드밸랜서의 IP를 통해 서비스에 접근하도록 함
- ExternalName: 파드에서 서비스를 통해 외부로 나가기 위한 설정
'Study' 카테고리의 다른 글
[Study] 도커 & 쿠버네티스 - Lesson 7 (0) | 2024.11.07 |
---|---|
[Study] 도커 & 쿠버네티스 - Lesson 6 (0) | 2024.11.06 |
[Study] 도커 & 쿠버네티스 - Lesson 5 (0) | 2024.11.06 |
[Study] 도커 & 쿠버네티스 - Lesson 4 (3) | 2024.11.06 |
[Study] 도커 & 쿠버네티스 - Lesson 3 (0) | 2024.11.05 |
WRITTEN BY