쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션을 자동으로 배포, 확장 및 관리하기 위한 오픈 소스 컨테이너 오케스트레이션 플랫폼입니다. Google에서 원래 개발되었으며, 현재는 Cloud Native Computing Foundation(CNCF)에 의해 관리됩니다.
쿠버네티스의 주요 특징 및 개념:
1. 컨테이너 오케스트레이션: 여러 컨테이너가 동작하는 애플리케이션의 배포와 확장을 자동화합니다.
2. 자가 치유: 지정된 상태와 현재 상태를 비교하여, 필요한 경우 컨테이너나 노드를 재시작하면서 시스템을 자동으로 복구합니다.
3. 수평적 스케일링: 필요에 따라 애플리케이션을 자동으로 확장하거나 축소할 수 있습니다.
4. 서비스 디스커버리와 로드 밸런싱: 쿠버네티스는 컨테이너에 고유한 IP 주소와 단일 DNS 이름을 제공하며, 부하를 분산시킬 수 있습니다.
5. 자동 롤아웃 및 롤백: 쿠버네티스는 애플리케이션의 업데이트와 롤백을 관리하며, 업데이트 프로세스 중에 문제가 발생하면 자동으로 롤백합니다.
6. 비밀 및 설정 관리: 쿠버네티스를 사용하면 컨테이너 이미지를 재구성하지 않고도 비밀 및 애플리케이션 설정을 업데이트하고 다시 사용할 수 있습니다.
7. 스토리지 오케스트레이션: 로컬 스토리지나 클라우드 제공자의 스토리지와 같은 스토리지 시스템을 자동으로 마운트합니다.
8. 배치 작업: 배치 처리와 연속적인 작업을 관리 및 실행할 수 있습니다.
쿠버네티스가 하는 일들에 대해서 알아보았습니다.
그러면 정확히 컨테이너오케이스트레이션이 무엇일까요?
비유를 통해서 알아볼까요??
컨테이너 오케스트레이션을 이해하기 쉽게 비유하자면, '교향악단의 지휘자'로 생각할 수 있습니다.
1. 컨테이너: 각각의 악기나 연주자에 해당합니다. 독립적으로는 음악을 연주할 수 있지만, 전체 곡의 조화로운 연주를 위해서는 다른 악기나 연주자와의 조화가 필요합니다.
2. 쿠버네티스(오케스트레이터): 교향악단의 지휘자에 해당합니다. 개별 컨테이너(악기나 연주자)가 언제 시작되고, 언제 멈춰야 하는지, 어떻게 서로 통신해야 하는지 등을 관리하며, 전체 시스템(교향곡)이 원활하게 동작하도록 조율합니다.
3. 스케일링: 연주자의 수를 늘리거나 줄이는 것과 비슷합니다. 곡의 복잡성이나 관객의 수에 따라 연주자의 수를 조절해 최적의 퍼포먼스를 내도록 합니다.
4. 자가 치유: 연주 중인 악기나 연주자가 문제를 일으킬 경우, 지휘자가 즉시 다른 연주자에게 그 부분을 맡기는 것과 같습니다. 이를 통해 곡이 중단되지 않고 계속 연주될 수 있습니다.
쿠버네티스는 전반적으로 러닝커브가 높기 때문에 이렇게 전반적인 것들을 알고 진행하는 것도 좋을 거 같습니다.
교향악단의 지휘자 == 쿠버네티스 교향곡 == 전체 시스템악기나 연주자 == 컨테이너 |
어느 정도 쿠버네티스의 개요에 대해서 알아보았습니다.
러닝 커브가 높다보니 항상 예시를 들어서 설명할 수 있도록 해볼게요 ㅎㅎ
https://kubernetes.io/ko/docs/concepts/overview/
'Infra Architecture > Kubernetes' 카테고리의 다른 글
[K8S] Workload - Pods (0) | 2024.02.26 |
---|---|
[K8S kubectl] --dry-run 옵션 (0) | 2024.02.25 |
[K8S TroubleShooting] no such host (0) | 2024.02.24 |
[K8S] Control Plane(Master Node), Worker Node (0) | 2024.02.23 |