-
Kubernetes (쿠버네티스) 이론CS 공부/DevOps 2024. 10. 22. 14:31
쿠버네티스란?
컨테이너화된 workload와 서비스를 관리하기 위한 확장 가능한 오픈소스 플랫폼
- 도커 이미지가 많아지면서 관리해야할 컨테이너와 서버들이 많아짐
- 컨테이너의 관리를 자동화할 도구(오케스트레이션 툴)의 필요성
- 컨테이너를 쉽고 빠르게 배포 및 확장하고, 관리를 자동화해주는 오픈소스 플랫폼
쿠버네티스의 특징
- 거대한 커뮤니티와 생태계 (대기업들의 지원)
- 다양한 배포 방식
- 여러대의 애플리케이션 띄우고 싶을 때: Deployment
- 로그, 모니터링 등 모든 서버에 설치 필요한 경우: Daemon Set
- 배치성 작업: Job, Cronjob
Deployment, StatefulSets, Job, Cronjob 등 3. Namespace & Label
- Namespace 기능으로 하나의 클러스터를 논리적으로 구분하여 사용 가능
- Label 기능으로 유연, 확장성 있게 리소스 관리
4. RBAC (role-based access control)
- 누가, 무엇을, 어디에(Namespace) 실행할 수 있는지 결정하는 권한 및 액세스 관리 형식
- 각 리소스에 대해 CRUD 권한을 손쉽게 지정
- 클러스터 전체에 적용하거나 특정 Namespace에 적용 가능
- AWS IAM 연동해서 사용 가능
5. Auto Scaling으로 손쉽게 리소스 확장 가능
6. Federation, Multi Cluster로 클라우드의 쿠버네티스와 서버의 쿠버네티스 묶어서 하나로 사용 가능
쿠버네티스 기본 개념
Master-node 구조 - 중앙(Master)에 API 서버와 상태 저장소를 두고 각 서버(Node)의 에이전트(kubelet)과 통신하는 구조
- 모든 명령은 master의 API 서버를 호출하고, node는 master와 통신하면서 필요한 작업 수행
- Kubectl이라는 클라이언트 도구로 API 서버 접근 가능
쿠버네티스 Object
Pod
- 쿠버네티스에서 배포할 수 있는 가장 작은 단위
- 여러개의 컨테이너, 스토리지, 네트워크 합쳐진 구조
- 컨테이너를 한개 사용해도 Pod로 감싸서 관리
Replicaset & Deployment
- Pod를 여러개 복제하여 관리하는 Object
- 복제할 개수, Label 선택자, 생성할 Pod의 설정값 등 설정
- 자동으로 롤링 업데이트 가능
Service
- Pod를 여러개 복제하여 관리하는 Object
'CS 공부 > DevOps' 카테고리의 다른 글
Kubernetes Orchestrations 장점 (0) 2024.12.18 Kubernetes 기본 구조와 명령어 (0) 2024.10.23 Docker 이미지 빌드 및 배포 (0) 2024.10.22 도커와 컨테이너 (컨테이너 생성 및 Dockerfile 사용) (1) 2024.09.05