Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 시스템입니다.
Google에서 개발했으며 현재 Cloud Native Computing Foundation에서 관리하고 있습니다.
Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 플랫폼을 제공합니다.
컨테이너란 무엇입니까?
컨테이너는 코드, 런타임, 라이브러리, 환경 변수 및 구성 파일을 포함하여 소프트웨어를 실행하는 데 필요한 모든 것을 포함하는 독립 실행형 실행 패키지입니다.
컨테이너는 애플리케이션을 패키징하고 배포하는 일관된 방법을 제공하여 애플리케이션이 모든 환경에서 동일한 방식으로 실행되도록 합니다.
쿠버네티스를 사용하는 이유
Kubernetes는 다음과 같은 많은 이점을 제공합니다.
- 확장성: Kubernetes는 수요에 따라 실행 중인 컨테이너 수를 자동으로 확장하거나 축소할 수 있습니다.
- 복원력: Kubernetes는 자동 복구 기능을 제공하여 실패한 컨테이너를 자동으로 다시 시작하고 실패한 컨테이너를 교체하며 노드가 실패한 경우 컨테이너를 다른 노드로 다시 예약합니다.
- 로드 밸런싱: Kubernetes는 여러 컨테이너에 자동으로 트래픽을 분산할 수 있습니다.
- 롤아웃 및 롤백: Kubernetes를 사용하면 새 버전의 애플리케이션을 쉽게 배포하고 필요한 경우 이전 버전으로 롤백할 수 있습니다.
쿠버네티스 아키텍처
Kubernetes에는 여러 구성 요소가 함께 작동하는 모듈식 아키텍처가 있습니다.
주요 구성 요소는 다음과 같습니다.
- API 서버: Kubernetes API를 노출하는 중앙 관리 구성 요소입니다.
- 스케줄러: 클러스터의 노드에서 컨테이너 스케줄링을 담당합니다.
- 컨트롤러 관리자: 컨트롤러 프로세스를 실행하는 구성 요소입니다.
- etcd: 구성 데이터를 저장하는 분산 키-값 저장소입니다.
- Kubelet: 클러스터의 각 노드에서 실행되는 에이전트입니다. API 서버와 통신하여 컨테이너가 원하는 대로 실행되고 있는지 확인합니다.
- 컨테이너 런타임: 컨테이너 시작 및 중지를 담당하는 구성 요소입니다.
Kubernetes에서 리소스 관리
Kubernetes는 다음을 포함하여 클러스터에서 리소스를 관리하기 위한 다양한 도구를 제공합니다.
- 클러스터를 논리 그룹으로 분할하는 방법을 제공하는 네임스페이스.
- 클러스터의 리소스에 메타데이터를 첨부할 수 있는 레이블 및 주석.
- 네임스페이스 또는 리소스 세트에서 사용하는 리소스의 양을 제한할 수 있는 리소스 할당량.
- 제한 및 요청: 컨테이너에서 사용해야 하는 최소 및 최대 리소스를 지정할 수 있습니다.
Kubernetes로 애플리케이션 배포
Kubernetes는 선언적 구성 파일을 사용하여 애플리케이션 배포 방법을 지정합니다.
구성 파일은 복제본 수, 필요한 리소스 및 애플리케이션의 다른 부분에 대한 연결을 포함하여 원하는 애플리케이션 상태를 설명합니다.
그런 다음 Kubernetes는 애플리케이션의 실제 상태가 원하는 상태와 일치하는지 확인합니다.
차이가 있는 경우 Kubernetes는 원하는 상태에 맞게 실제 상태를 가져오도록 변경합니다.
결론
Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 강력한 플랫폼입니다.
확장성, 복원력, 자가 치유 기능을 비롯한 많은 이점을 제공합니다.
모듈식 아키텍처와 선언적 구성을 통해 Kubernetes를 사용하면 일관되고 예측 가능한 방식으로 애플리케이션을 쉽게 배포, 확장 및 관리할 수 있습니다.
- 오늘의 한 줄 -
사용은 많이하지만... 정말 제대로 사용하기가 힘들다.
공감과 구독은 저에게 크나큰 힘이 됩니다♡
함께 보면 좋은 글
https://kubernetes.io/
'IT > WAS' 카테고리의 다른 글
[Tomcat] 톰캣 Post size 와 파라메터 count 설정하기 (0) | 2020.10.21 |
---|