SaevOps
[쿠버네티스] 아키텍처 및 구성도 본문
컨테이너란?
- SW가 필요로 하는 라이브러리와 설정만 포함
- s/w 실행에 필요한 것을 패키지로 구성하여 독립적인 컨테이너에 저장
# 쿠버네티스 배경
1. CGROUPS(control groups)
- 프로세스 별로 자원(CPU, Memory, Disk I/O,..) 할당 및 제어
2. CHROOT (change root)
- 프로세스에 대한 파일시스템 격리
- 사용자 root 경로를 바꿔줌 (/ -> /home/user1)
3. NAMESPACE
- 프로세스 환경 격리 (논리적으로 격리)
- 서로의 환경에 영향을 끼치지 않음
# 컨테이너 환경의 특징
1. 확장성
2. 일관성
3. 빠른동작
-> OTT 서비스의 경우 빠른 처리가 필요
-> 무중단 수정 가능
4. 공간절약
# 환경에 따른 구성도
<베어메탈>
베어메탈 - OS - Bins(이진 파일)/Libs(비휘발성 데이터) - 앱
- 자원 격리 불가
- OS 간 호환성 문제
- 애플리케이션 자동 확장 불가
<가상화 환경>
가상화 - OS - 하이퍼바이저 - VM(Geust OS)
- 자원 격리
- 하이퍼바이저 부화
- 이기종 VM 기술 간 호환성 문제
- 애플리케이션 자동 확장 불가
<컨테이너 환경>
하드웨어 장비 - OS - 커널 - 컨테이너
- 자원 격리
- 표준 컨테이너 기술로 호환성 제공
- 애플리케이션 자동 확장 가능
- 하이브리드 클라우드 환경
# 쿠버네티스를 사용하는 이유
1. 도커만 사용할 시 네트워크적으로도 격리됨 (장점이자 단점)
2. 회사 내부 웹만 쓸 때는 사용해도 되나, 사용하는 서비스가 많을수록 컨테이너 관리가 어려워짐
# 오케스트레이션 필요성
- 여러 개의 컨테이너들을 통합
- 네트워크/스토리지/컴퓨트 자원 관리
- 빠르고 유연한 컨테이너 증감
- 동적 컨테이너 연결 및 부하분산
쿠버네티스 장애원인 1위 : 네트워크 병목
# 쿠버네티스 특징 (22년 11월 23일 기준)
-Automated rollouts and rollbacks
-Service discovery and load balancing
-Storage orchestration
-Self-healing
-Secret and configuration management
-Automatic bin packing
-Batch execution
-Horizontal scaling
-IPv4/IPv6 dual-stack
-Designed for extensibility
# 쿠버네티스 아키텍처
마스터 노드 (컨트롤 플레인 노드)
API Server
- 쿠버네티스 컨트롤 플레인에 대한 프론트 엔드
etcd
- 클러스터 정보를 담는 key-value 저장소
- 머신의 분산된 시스템 또는 클러스터의 설정 공유, 서비스 검색 및 스케쥴러 조정을 위한
일관된 오픈소스, 분산형 키-값 저장소
- 3 배수 구성 추천
- 제일 중요한 구성
Scheduler
- 새로 생성된 파드를 리소스 요건에 따른 노드 배정
Controller-manager
- 하위 컨트롤러를 구동하는 컴포넌트
- replica, ...
Cloud-controller-manager
- 클라우드 벤더에 특화된 코드 수행
워커 노드
kubelet
- 노드에서 실행되는 에이전트
kube-proxy
- 호스트 상의 네트워크 규칙을 유지하고 연결에 대한 포워딩 수행
pod
- 컨테이너의 논리적 모음
- 1파트 1 컨테이너 권장 - 네트워크 관리를 위해서, 쿠버네티스는 파드를 올렸다 내렸다 함
Container Runtime
- 컨테이너의 동작을 책임지는 소프트웨어
# 구성요소
Deployment
ReplicaSet:
- 복제 개수
StatusfulSet:
- 상태 유지
- ex) 데이터베이스를 사용하는 경우
DaemonSet:
- 노드마다 필수적으로 있어야 하는 것
- ex ) Log
Persistent Volume Claim
- 볼륨을 얼마나 쓰겠다 하는 요청
- if Persistent Volume Claim > Persistent Volume : Panding (기다림)
- 따라서 Claum은 작게 둠 그래도 디스크를 가져오기 때문에
- Storage Class로 지정 시 둘 다 사용 가능
'클라우드 > Kubernetes' 카테고리의 다른 글
[k8s] 명령어 자동 완성 / 별칭 / 약어 정리 (0) | 2023.02.16 |
---|---|
[OCI] OKE 구성 (0) | 2022.11.25 |
[쿠버네티스] 인그레스 / 인그레스 컨트롤러 (0) | 2022.10.26 |
[쿠버네티스] 노드포트 / 클러스터 내부 접속 / 부하분산 (0) | 2022.10.25 |
[쿠버네티스] 파드 업그레이드 / 복구 (0) | 2022.10.21 |