Developing

패스트캠퍼스 캐시백 챌린지 58일차 본문

Devops/Fastcampus 캐시백 챌린지

패스트캠퍼스 캐시백 챌린지 58일차

DEV_BLOG 2022. 6. 14. 16:38

수강 인증샷

 

 

Kubernetes cluster 구성요소와 API resource 관련된 내용의 클립들을 수강하는식으로 챌린지를 진행하였다. kubectl explain 명령어로 각 API 리소스에 대해 알고싶을때 확인할 수 있다는 것도 알게되었고, manifest 파일의 Rootkey가 각각 어느 용도로 사용되는지도 알 수 있었다. 다음 포스팅으로는 kubectl 명령형과 선언형 방식과 관련된 내용을 포스팅할 예정이다.

 

쿠버네티스 클러스터 구성요소

 

클러스터 구성

  • Control Plane(Master Node)

⇒ 클러스터의 관리하는 역할 담당

⇒ 상태 관리 및 명령어 처리

  • Node(Worker Node)

⇒ 어플리케이션 컨테이너 실행

 

제어 영역(Control Plane)

  • API Server

⇒ 쿠버네티스 리소스와 클러스터 관리를 위한 API제공

⇒ etcd를 데이터 저장소로 사용

  • Schedular

⇒ 노드의 자원 사용 상태를 관리하며, 새로운 워크로드를 어디에 배포할지 관리

  • Controller Manager

⇒ 여러 컨트롤러 프로세스를 관리

⇒ 각 컨트롤러는 클러스터로부터 특정 리소스 상태의 변화를 감지하여 클러스터에 반영하는 reconcile(백업&복구)과정을 반복 수행

  • etcd

⇒ 분산 Key - Value 저장소로 클러스터 상태 저장

 

노드(Node)

  • Kubelet

⇒ 컨테이너 런타임(Container Runtime)과 통신하며 컨테이너 라이프사이클 관리

⇒ API 서버와 통신하며 노드의 리소스 관리

  • CRI (Container Runtime Interface)

⇒ kubelet이 컨테이너 런타임과 통신할 때 사용되는 인터페이스

⇒ 쿠버네티스는 Docker, containerd, cri-o 컨테이너 런타임 지원

  • kube-proxy

⇒ 오버레이 네트워크 구성

⇒ 네트워크 프록시 및 내부 로드밸런서 역할 수행

 

 

 

API 리소스

 

API 리소스와 오브젝트

  • API 리소스

⇒ 쿠버네티스가 관리할 수 있는 오브젝트의 종류

⇒ Pod, Service, ConfigMap, Secret

⇒ Node, ServiceAccount, Role

  • 오브젝트(Object)

⇒ API 리소스를 인스턴스화 한 것

# 현재 쿠버네티스 클러스터가 지원하는 API 리소스 목록 출력
$ kubectl api-resources

# 특정 API 리소스에 대해 간단한 설명 확인
$ kubectl explain pod

 

 

 

실제로 많이 사용하는 api resource는 pod이다. NAME에는 pods로 복수로 되어있고 축약어는 po이다.

 

explain을 통해 간단한 설명을 확인할 수 있다.

 

 

현재 클러스터의 모든 namespace로부터 pod목록을 볼 수 있다. 축약어를 사용해도 무방하다.

 

매니페스트 파일

  • 쿠버네티스는 오브젝트를 YAML 기반 매니케스트 파일로 관리

⇒ 오브젝트가 어떤 API 그룹에 속하고 API 버전이 몇인가? : apiVersion

⇒ 오브젝트가 어떤 API 리소스인가? : kind

⇒ 오브젝트를 식별하기 위한 정보(이름,네임스페이스,레이블 등)? : metadata

⇒ 오브젝트가 가지고자 하는 데이터는? : spec

(API 리소스에 따라 spec 대신 data, rules, subjects 등 다른 속성 사용)

 

Labels과 Annotations

  • 모든 쿠버네티스 오브젝트는 labels과 Annotations 메타데이터를 가질 수 있다.
  • labels & Annotations 모두 문자열(String) 형식의 Key - Value 데이터를 기록한다.

 

  • Labels

⇒ 오브젝트를 식별하기 위한 목적

⇒ 검색 / 분류 / 필터링 등의 목적으로 사용

⇒ 쿠버네티스 내부 여러 기능에서 Label Selector 기능 제공

  • Annotations

⇒ 식별이 아닌 다른 목적으로 사용

⇒ 보통 쿠버네티스의 애드온이 해당 오브젝트를 어떻게 처리할지 결정하기 위한 설정 용도로 사용

 

 

 

 

 

https://bit.ly/3L3avNW

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

* 본 포스팅은 패스트캠퍼스 환급 챌린지를 위해 작성되었습니다.