K8s라고도 하는 Kubernetes는 머신 클러스터 전반에 걸쳐 애플리케이션 컨테이너의 배포, 스케줄링, 모니터링, 유지 보수, 운영을 관리하고 자동화하는 데 사용되는 오픈 소스 플랫폼입니다.
Google에서 개발한 Kubernetes의 네트워킹을 활용하여 관리자는 프라이빗, 퍼블릭 및 하이브리드 클라우드 인프라 간에 워크로드를 이동할 수 있습니다. 개발자는 Kubernetes를 사용하여 인프라의 요구 사항에 맞게 소프트웨어 애플리케이션을 패키징하고 새로운 버전을 빠르게 배포할 수 있습니다.
Kubernetes 네트워킹을 통해 Kubernetes의 구성 요소가 서로 통신하며, 다른 애플리케이션과도 통신합니다. 호스트 포트를 컨테이너 포트에 매핑할 필요가 없는 평면 네트워크 구조를 기반으로 한다는 점에서 Kubernetes 플랫폼은 다른 네트워킹 플랫폼과 차별화됩니다. Kubernetes 플랫폼은 포트를 동적으로 할당하지 않고도 애플리케이션 간에 머신을 공유하여 분산 시스템을 실행하는 새로운 방식을 제공합니다.
Kubernetes 포드 네트워크는 상호 연관된 여러 구성 요소를 연결합니다.
포드, 컨테이너, 노드, 애플리케이션 등 Kubernetes 플랫폼의 다양한 구성 요소는 통신에 다양한 네트워킹 방식을 사용합니다. 컨테이너 간 통신, 포드 간 통신, 포드 와 서비스 간 통신, 외부와 서비스 간 통신이 있습니다.
포드 간 통신은 Kubernetes의 기반이 됩니다. 포드는 네트워크 플러그인에 의해 설정된 네트워크 정책에 따라 서로 통신하며, 이때 서로 간에 명시적으로 링크를 생성하거나 컨테이너 포트를 호스트 포트에 매핑하지 않습니다. 포드가 동일한 네트워크 네임스페이스를 공유하며 각자 고유한 IP 주소를 가지고 있기 때문에, NAT(네트워크 주소 변환)를 사용하지 않고도 로컬 호스트를 사용하여 모든 노드 내의 다른 모든 포드를 찾아 통신할 수 있습니다.
내부 네트워크가 외부 네트워크와 분리되어 있기 때문에, 내부(횡방향) 트래픽과 외부(종방향) 트래픽의 상호 작용 문제를 해결하는 것이 Kubernetes의 당면 과제 중 하나입니다. 하지만 노드 간에 이동하는 트래픽은 노드와 외부의 물리적 또는 가상 머신 간에도 이동할 수 있습니다. 외부 트래픽을 Kubernetes 클러스터로 가져오는 방법은 몇 가지가 있습니다.
Kubernetes 네트워킹의 또 다른 핵심 요소는 컨테이너 네트워킹 인터페이스, 즉 CNI입니다. CNI는 노드 전반의 포드를 연결하며 네트워크 네임스페이스와 네트워크 플러그인 또는 네트워크 공급업체와 Kubernetes 네트워크 간의 인터페이스 역할을 수행합니다. 서로 다른 기능을 제공하는 여러 CNI 공급업체와 플러그인 중에서 선택할 수 있습니다. CNI 플러그인에는 포드가 프로비저닝되고 폐기될 때 네트워크 및 리소스를 동적으로 구성하는 기능이 있습니다. 이 플러그인은 컨테이너가 생성되거나 제거됨에 따라 IP 주소를 프로비저닝하고 관리합니다. Kubernetes의 기본 네트워킹 공급업체는 Kubernetes이지만, Flannel, Calico, Canal, Weave Net과 같은 CNI 플러그인이 추가적인 기능을 제공합니다.
네트워크 관리자는 매우 다양한 방식으로 Kubernetes 네트워킹 모델을 구현할 수 있습니다. Gartner는 2019년 데이터 센터 네트워킹에 대한 매직 쿼드런트 보고서에서 아래와 같은 Kubernetes 네트워킹 사례들을 "혁신을 선도"하는 것으로 인정했습니다.
VMware NSX Data Center는 완전한 L2-L7 네트워킹 및 보안 가상화 플랫폼을 제공하므로 단일 창에서 전체 네트워크를 단일 항목으로 관리할 수 있습니다.
VMware Enterprise PKS를 시작해 보십시오. Kubernetes를 배포, 실행, 관리하여 운영의 생산성과 효율성을 향상할 수 있습니다.
컨테이너화된 애플리케이션 및 마이크로 서비스에 통합된 전체 스택 네트워킹 및 보안을 제공합니다.
신속하게 애플리케이션을 구축하고, 일관되게 오픈 소스 Kubernetes를 운영하고, 전체 설치 공간을 안정적으로 관리하십시오.