IT/CKA

CKA 준비과정 - Kubernetes 개념 (1) / 2023.04.16

Primes 2023. 4. 16. 18:40
728x90

본 학습 정리는 CKA 자격증이라면 모두들 알고 계시는 강의를 토대로 합니다.

Certified Kubernetes Administrator (CKA) Practice Exam Tests | Udemy

위 강의 과정을 토대로, 개인 학습을 진행하기 위해 포스팅을 진행하며 정리 내용 중 오류가 있는 부분이 있을 수 있습니다.

 

만일 참고하시는 분께서 오류를 발견하셨다면 댓글로 정정해주신다면 감사하게 수정하도록 하겠습니다.

 


Cluster Architecture

쿠버네티스 아키텍처는 크게 Master 노드 / Worker 노드로 구분된다.

Master Node 구성 요소 : ETCD Cluster, kube-apiserver, Kube Controller Manager, kube-scheduler

Worker Node 구성 요소 : kubelet, Kube-proxy, Container Runtime Engine

 

각 구성요소(컴포넌트) 역할

Master Node : 쿠버네티스 클러스터 전체 관제 노드

- ETCD Cluster : 쿠버네티스의 각종 정보 저장

- kube-apiserver : REST-API 로 동작, 쿠버네티스 내 컴포넌트들이 호출을 위해 사용하는 서버, 명령 전달

- Kube Controller Manager : Controller 관리 및 노드 할당, Pod에 복제 / 배포 명령을 수행

- kube-scheduler : 조건 설정, pod를 어떤 노드에서 실행할 것인지 결정

 

Worker Node : 마스터로 부터 명령받아 실 서비스 담당하는 노드

- kubelet : API Server와 통신, 명령을 받아와 Worker node 활성화 및 Master 에게 노드 상태 전달

- Kube-proxy : 노드 간 네트워크 규칙 관리, 통신을 가능케 함, Pod의 통신 담당

- Container Runtime Engine : 컨테이너 실행 SW (containerd, Docker)

 

ETCD

=> key-value 형태의 데이터를 저장하는 스토리지

- ETCD Cluster는 각종 정보를 저장하게 된다. ex) Node, Pod, 설정, 키, 계정, Role 등등

 

Key-value 저장 형태

- 각 데이터가 각 document를 갖고 해당 데이터에 관련된 모든 정보가 파일에 저장된다. => 특정 데이터에 대한 파일이기 때문에, 다른 데이터에 대해서는 영향을 끼치지 않는다.

- 기존의 관계형 DB와 상반되는 개념

- ex) JSON, YANO

 

Cluster 배포 유형

- Manual 설치

- kubeadm 활용

 

간단 실습 - etcd 설치 및 버전 확인

curl -L https://github.com/etcd-io/etcd/releases/download/v3.3.11/etcd-v3.3.11-linux-amd64.tar.gz -o etcd-v3.3.11-linux-amd64.tar.gz

etcd를 다운받는다. 이용한 버전은 강의에서 사용한 버전을 그대로 다운받았다.

압축 해제
폴더로 이동하여 etcd를 구동한다
실행하면 위와 같이 출력되며 더 이상 커맨드를 입력할 수 없다.

실행 후에는 새로운 터미널을 띄워 명령어 실습을 진행한다.

간단하게 key1를 설정하고 불러온다
이용하는 etcd 버전 체크.

etcd 버전에는 두 가지 버전이 제공되고 있다. 따라서 --version 명령어를 통해 API version을 체크해준다. 버전에 따라, 제공되는 명령어 및 API에 차이가 있기 때문이다.

etcdctl 명령어는 v2와 v3에 제공되고 있다.

기본 etcdctl 명령어를 입력하면 도움말 및 입력할 수 있는 커맨드를 안내한다.

etcdctl API version 변경 방법은 2가지가 존재한다.

1회성으로 변경하여 입력하는 방법. 위 방법으로 진행할 시 해당 명령어만 version 3으로 구동된다
영구적으로 적용하는 방법

export 방법으로 영구적으로 적용할 경우, version 2 에서 사용하던 명령어는 이용할 수 없음을 확인할 수 있다.

--version 명령어는 API version 2에서만 사용한다. version 3 에서는 -- 없이 사용한다.
변경 결과 위와같이 version 3의 명령어 안내가 출력된다.

 

반응형