Home ☸️ [Kubernetes] About Kubernetes ☸️
Post
Cancel

☸️ [Kubernetes] About Kubernetes ☸️

☸️ Kubernetes

Kubernetes란 이름은 Helmsman(키잡이)나 Pilot(조종사)를 뜻하는 그리스어에서 유래되었습니다.

Kubernetes는 K8s로 표기하는데 K, ubernetes, s를 나타내는 줄임말입니다.

☸️ History of Kubernetes

K8s 등장 과정은 다음과 같습니다.

출처: Kubernetes Doc

등장 과정설명장점단점
1️⃣ Traditional Deployment여러 개의 Host OS 위에서 Application들을 실행 • Host의 자원을 충분히 활용하지 못해 확장하지 못하는 문제
• 많은 Server들을 유지하지 못하는 문제
2️⃣ Virtualized Deployment단일 Server에서 VM(Virtual Machine)을 실행• VM간의 Application이 격리되면서 일정 수준의 보안을 제공
• 하나의 VM을 하나의 Server처럼 사용이 가능해 효율적으로 Server의 자원을 활용
• Application을 쉽게 추가 & 업데이트하여 확장이 가능
• Server 비용을 절감
Host OS 위에 여러 개의 Guest OS가 실행되면서 무거워져 전체적인 속도가 저하
3️⃣ Container DeploymentContainer는 VM과 유사하지만 Guest OS를 사용하지 않으면서 격리를 완화• Guest OS를 사용하지 않기 때문에 속도가 향상
• Cloud나 OS에 종속되지 않기 때문에 이식성(Portability)이 향상
Host OS를 공유하기 때문에 VM을 사용했을 때보다는 보안 수준이 감소

Container는 Application을 포장(Bundle)하고 실행(Run)하는 좋은 방법이지만 Production 환경에서는 많은 Container를 관리하는 도구가 필요했습니다. 이처럼 Container를 관리하기위해 등장한 도구가 바로 Kubernetes입니다.

☸️ Kubernetes의 기능

Kubernetes의 대표적인 기능으로는 다음과 같은 것들이 있습니다.

기능설명
• Service DiscoveryK8s는 DNS나 자체 IP Address를 사용해 Container 노출이 가능
• Load BalancingContainer에 대한 트래픽이 많으면 K8s는 트래픽을 분산
• Storage Orchestration원하는 Storage System을 자동으로 Mount
• Automated Rollout and Rollback배포된 Container의 상태를 원하는 상태로 변경 가능
• Automatic Bin Packing각 Container들이 필요로 하는 자원을 가장 잘 사용할 수 있도록 관리해주는 Node 제공
• Self-Healing배포에 실패한 Container를 다시 시작하거나 교체하는 기능
• Secret and configuration managementPassword, OAuth Token, SSH Key와 같은 중요한 정보들을 저장하고 관리
• Batch ExecutionService 뿐만 아니라 Batch와 CI Workload들을 관리
• Horizontal Scaling사용량에 따라 자동으로 Application을 Scale Up / Down
• IPv4 / IPv6 Dual-StackIPv4와 IPv6를 함께 할당하는 것이 가능
• Designed for Extensibility이전의 Code들을 변경하지 않고 기능을 추가하는 것이 가능

Kubernetes에서 제공하는 기능들을 한 마디로 정리하자면 Automatically Manage Container라고 할 수 있습니다.

또한 K8s는 자체적으로 Container들을 관리해주는 기능을 가지고 있을 뿐 아니라 사용자의 선택을 가능하게 함으로써 유연성을 가지고 있습니다.

☸️ Reference

This post is licensed under CC BY 4.0 by the author.

🌐 [Network] Load Balancing & Proxy 🌐

☸️ [Kubernetes] Components ☸️