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
컴퓨터 클러스터 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 독일에 위치한 켐니츠 기술 대학교에서 기술자들이 대규모 리눅스 클러스터에서 작업하고 있다 컴퓨터 클러스터(영어: computer cluster)는 여러 대의 컴퓨터들이
ko.wikipedia.org
Google Kubernetes Engine(GKE)
GKE는 완전한 Kubernetes API, 4방향 자동 확장, 출시 채널, 멀티 클러스터 지원을 갖춘 업계 최초의 완전 관리형 Kubernetes 서비스입니다.
cloud.google.com
Red Hat OpenShift로 간편해진 개방형 컨테이너 오케스트레이션
오픈시프트 컨테이너 플랫폼의 기능과 장점: 자동화된 풀스택 오퍼레이션으로 하이브리드 클라우드, 멀티클라우드, 엣지 배포를 관리하는 기업용 쿠버네티스 컨테이너 플랫폼
www.redhat.com
IBM Cloud Kubernetes Service
IBM Cloud Kubernetes Service를 사용하면 지능형 스케줄링, 자가 복구 및 수평 스케일링을 오케스트레이션할 수 있습니다.
www.ibm.com
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
Docker Container
Docker 개요 참고: 컨테이너 개념잡기- 왜 컨테이너일까? - Opennaru, Inc. Docker란? Dock + er 원래는 부두에서 물건을 싣고 내리는 일을 하는 사람을 의미한다. 규격화되지 않은 물건들의 형태와 노동 방
drsuneamer.tistory.com
참고한 영상
🔼명령어와 같이 개념도 짚어 주는 느낌이라 좋았음
'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 |