일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Ngrinder Docker
- aws s3
- Avast Security
- 패스트캠퍼스후기
- ERR unknown command 'JSON.SET'
- redis cli
- ERR unknown command 'JSON.GET'
- Window redis-cli
- 직장인자기계발
- elastic cache
- Redis
- aws
- 캐시백
- 패스트캠퍼스
- Avast 구독취소
- AWS S3 계정이동
- AWS S3 버킷 삭제
- 직장인인강
- redis-cli
- RedisJSON
- nodemailer
- vscode
- 패캠챌린지
- gitlab 잔디옮기기
- 잔디이전
- 한 번에 끝내는 AWS 인프라 구축과 DevOps 운영 초격차 패키지 Online
- 환급챌린지
- AWS S3 migration
- putty Inactive
- 캐시백챌린지
- Today
- Total
Developing
패스트캠퍼스 캐시백 챌린지 58일차 본문
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
⇒ 식별이 아닌 다른 목적으로 사용
⇒ 보통 쿠버네티스의 애드온이 해당 오브젝트를 어떻게 처리할지 결정하기 위한 설정 용도로 사용
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
* 본 포스팅은 패스트캠퍼스 환급 챌린지를 위해 작성되었습니다.
'Devops > Fastcampus 캐시백 챌린지' 카테고리의 다른 글
패스트캠퍼스 캐시백 챌린지 60일차 (0) | 2022.06.16 |
---|---|
패스트캠퍼스 캐시백 챌린지 59일차 (0) | 2022.06.15 |
패스트캠퍼스 캐시백 챌린지 57일차 (0) | 2022.06.13 |
패스트캠퍼스 캐시백 챌린지 56일차 (0) | 2022.06.12 |
패스트캠퍼스 캐시백 챌린지 55일차 (0) | 2022.06.11 |