Kubernetes 개요
The evolution of microservices frameworks
Docker (2013)
- microservice의 runtime을 컨테이너 단위로 관리하면 편리함
- 불편함 발생 > 컨테이너 수가 많아질수록 관리 어려움
Container Orchestration
- Docker Swarm 등 여러 종류 등장
- 현재는 업계 표준 수준의 Kubernetes로 통일 (백엔드의 OS와 같은 역할로 여겨지기도 함)
Spring Cloud (2015)
- netflix oss를 spring에서 매핑한 것
Istio
- Service mesh solution
- microservice 하나하나 각 서로를 호출 (거미줄처럼 복잡해짐)
- 구조적 문제점 발생: 핵심이 되는 microservice에 장애가 발생하면 장애 전파
- 이런 문제를 해결하기 위한 솔루션이 service mesh solution
- 대표적인 것이 Istio
컨테이너 기술의 발전
- 가상 머신을 통해 더 효율적으로 자원 사용 가능
- 컨테이너: 가상 머신과 유사하게 격리된 환경 지원, 더 가볍게 사용 가능
- 컨테이너들을 효율적으로 관리해주는 것이 쿠버네티스
Kubernetes
Kubernetes (K8S) : 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해 주는 오픈소스 시스템
가장 중요한 두 가지 관점
1. desired state
2. declarative
기능
- Service discovery and load balancing
- Automatic bin packing
- Storage orchestration
- Self-healing
- Automated rollouts and rollbacks
- Secret and configuration management
- Batch execution
- Horizontal scaling
Cluster
여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합
Kubernetes cluster
- 모여 있는 컴퓨터들을 두 가지로 구분
- master node
- cluster의 핵심
- api server 포함
- worker node
- master node
Kubernetes 구성 요소
클러스터 구성 컴포넌트
컨트롤 플레인
- 전체 클러스터의 기능을 제어하고 리소스를 만드는 역할
워커 노드
- 컨테이너 실행
Add-on 컴포넌트
- Kubernetes DNS 서버
- 대시보드
- CNI 플러그인
- ...
클러스터 작동 확인
kubectl cluster-info
API 서버 엔드포인트 확인 가능
쿠버네티스 리소스 변화 관찰
watch kubectl get all -o wide # 2초마다 자동 실행
YAML을 이용한 쿠버네티스 리소스 생성
YAML
- YAML Ain't Markup Language: 문서 마크업이 아닌 데이터 중심 표현
- 버전 제어 시스템 이점 사용 가능
- 탭 대신 공백 사용
- 배열 데이터 앞에는 '-' 기호 사용
쿠버네티스 Add-on Component
1. 쿠버네티스 대시보드 https://github.com/kubernetes/dashboard
- Web UI를 통해 쿠버네티스 리소스의 생성/수정/삭제/조회 기능 제공
# 설치 명령어
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
2. Metrics-Server https://github.com/kubernetes-incubator/metrics-server
- 쿠버네티스 자원 모니터링을 할 수 있게 성능 지표 수집
cf. Docker Container
참고한 영상
🔼명령어와 같이 개념도 짚어 주는 느낌이라 좋았음
'TIL > etc' 카테고리의 다른 글
[이산수학] 집합론 (1) | 2024.04.22 |
---|---|
jupyter notebook 설치 명령어 (0) | 2024.03.27 |
[Kubernetes] Deployment (0) | 2024.01.14 |
[Kubernetes] Service (0) | 2024.01.13 |
[Kubernetes] POD / POD Generator (1) | 2024.01.12 |