
1. 자동화된 컨테이너 오케스트레이션
k8s는 컨테이너의 배치, 스케일링, 관리를 자동화하여, 수동 프로세스의 오류를 줄이고 효율성을 높인다.
2. 뛰어난 확장성 및 유연성
애플리케이션의 수요에 따라 자동으로 또는 수동으로 스케일 업/다운이 가능하다. 예를 들어, 특정 시간대의 높은 트래픽에 대응하기 위해 자동으로 리소스를 증가시킬 수 있다.
3. 효율적인 리소스 사용
k8s는 리소스 사용을 최적화하여, 불필요한 리소스 낭비를 줄인다. 컨테이너는 필요한 리소스만을 할당받으며, 클러스터 내의 리소스를 효율적으로 분배한다.
4. 자동 롤아웃 및 롤백
k8s를 통해 새로운 버전의 애플리케이션을 점진적으로 배포할 수 있고, 문제가 발생할 경우 이전 버전으로 자동 롤백할 수 있다. 이는 서비스의 지속적인 가용성을 보장한다.
5. 데이터와 애플리케이션의 지속성 보장
스테이트풀 애플리케이션을 위해 퍼시스턴트 볼륨을 제공하여, 컨테이너가 재시작되거나 재배포될 때 데이터를 보존할 수 있다.
6. 서비스 디스커버리 및 로드 밸런싱
k8s는 내부적으로 서비스를 자동으로 발견하고, 이에 대한 로드 밸런싱을 수행하여 애플리케이션에 대한 트래픽을 균등하게 분배한다.
7. 보안 강화
네임스페이스, 네트워크 폴리시, 시크릿 관리 등을 통해 멀티테넌트 환경에서의 보안을 강화할 수 있다.
1. 클러스터 관리 및 자동화
자동 복구(Self-healing): k8s는 실패한 컨테이너를 자동으로 재시작하고, 문제가 발생한 노드에서 운영 중인 컨테이너를 건강한 노드로 이동시킨다. 이는 시스템의 지속적인 운영을 보장한다.
자동 스케일링(Auto-scaling): CPU 사용률이나 메모리 사용 같은 성능 지표를 기반으로 자동으로 파드(Pod)의 수를 조절한다. 이를 통해 리소스 사용을 최적화하고, 비용을 절감한다.
2. 무중단 서비스 제공
롤링 업데이트(Rolling updates): 애플리케이션을 업데이트할 때 기존 버전을 점진적으로 새 버전으로 교체한다. 이 과정에서 서비스의 가용성을 유지하며, 문제가 발생할 경우 즉시 이전 버전으로 롤백한다.
서비스 디스커버리 및 로드 밸런싱: k8s는 DNS 또는 IP 기반으로 서비스를 자동으로 발견하고, 요청을 여러 복제본(replicas)에 균등하게 분배하여 로드 밸런싱을 수행한다.
3. 환경 일관성 및 보안
컨피그 맵(ConfigMaps)과 시크릿(Secrets): 애플리케이션 설정을 컨테이너 이미지에서 분리하여 관리한다. 이를 통해 환경 설정을 일관되게 유지하면서 보안을 강화한다.
네트워크 폴리시(Network Policies): 파드 간의 통신을 제어하여 보안을 강화한다. 이는 미승인 액세스로부터 내부 네트워크를 보호하는 데 중요한 역할을 한다.
4. 리소스 최적화 및 비용 절감
리소스 할당 및 제한: k8s는 각 컨테이너에 필요한 CPU와 메모리 리소스를 할당하고 제한한다. 이를 통해 리소스 낭비를 줄이고, 필요한 경우에만 리소스를 추가하여 비용을 절감한다.