Kubernetes(=K8s)는 컨테이너화된 애플리케이션의 배포, 확장 관리를 자동화하기 위한 오픈 소스 시스템으로, 클라우드 네이티브의 핵심으로 급부상하여 현재는 컨테이너 관리의 디팩토(defacto) 스탠다드로 자리잡았습니다. 실제로 많은 곳에서 On-premise와 클라우드를 가리지 않고, 다양한 형태의 K8s 기반의 클러스터를 운영하고 있습니다. 그러나, 가용성, 다중화, 성능, 최적화, 확장, 업그레이드, 기술지원, 패치, 네트워크와의 연동 등에 있어 전문적인 기술/운영 인력이 없을 경우 K8s를 활용하는데 많은 어려움을 겪고 있는 것이 현실입니다. AWS에서는 이러한 어려움을 해소하기 위해, Amazon EKS(Elastic Kubernetes Services, 이하 EKS), 보통 EKS라 ..
Calico는 가상머신이나 컨테이너들을 위한 네트워킹, IP관리, 접근제어, 모니터링 등 다양한 네트워크 관련 기능을 제공하는 오픈소스 프로젝트로 주로 Tigera의 주도로 개발되고 있습니다. 다수의 K8s의 네트워크 서비스를 위한 CNI 플러그인들 중에서 현재 기준으로 가장 대중적인 선택지로 활용되고 있으며, 오픈스택이나 베어메탈, Windows 환경에서도 활용가능한 다재다능한 네트워크 솔루션입니다. Calico는 k8s의 Pod들에게 네트워크 기능을 제공하기 위해, 개별 Node에 다수의 컴포넌트를 설치합니다. 설치된 컴포넌트들은 Calico에서 제공하는 다양한 기능들에 대한 역할을 담당하며, 사용자의 설치 환경과 사용 목적에 따라 다양한 조합으로 이루어질 수 있습니다. 이 중 k8s에서 Pod간의 ..
K8s는 컨테이너를 그 자체로 관리하지 않고 여러개의 컨테이너를 묶어 또 하나의 Object 단위로 관리합니다. 이때, 여러개의 컨테이너가 묶여 있는 기본 관리 단위를 Pod라고 하며, K8s는 Pod 단위로 대부분의 작업을 처리합니다. 즉, Pod는 1개 이상의 컨테이너로 구성된 컨테이너의 집합이고, 하나의 Pod 안에는 여러개의 컨테이너가 존재합니다. 물론 Pod 안에 1개의 컨테이너로 구성하는 것도 가능합니다. 기본적으로 컨테이너들은 리눅스에서 제공하는 다양한 기본 관리 기능을 이용하여 컨테이너 운영환경을 제공합니다. 예를 들어, cgroup은 프로세스의 자원사용량을 제한하며, namespace는 프로세스의 격리된 환경을 제공합니다. 이 중 namespace는 하나의 시스템 내에서 다수의 독립된 공..