Kubernetes 네트워킹 개요

완료됨

노드

Kubernetes를 클러스터라고 하는 경우가 종종 있습니다. 개략적으로, 클러스터는 성능과 가용성을 개선하기 위해 연동되고 리소스를 공유하는 컴퓨터 그룹입니다. 클러스터에 있는 컴퓨터가 실패하면 클러스터에서 실행되는 서비스는 나머지 작동하는 컴퓨터에서 계속 실행될 수 있습니다.

Microsoft Azure에서는 이러한 컴퓨터를 VM(가상 머신)이라고 합니다. Kubernetes에서는 이러한 VM을 노드라고 합니다.

노드는 서로 통신하고 네트워크 트래픽을 효과적으로 라우팅할 수 있도록 네트워크에 연결되어 있어야 합니다. 또한 노드는 애플리케이션 워크로드 리소스를 실행할 수 있도록 핵심 Kubernetes 서비스 및 애플리케이션 워크로드의 오케스트레이션을 제공하는 Kubernetes 컨트롤 플레인과 통신해야 합니다.

Diagram that shows the Kubernetes cluster nodes and control plane.

Pod

Kubernetes에서 애플리케이션 워크로드 리소스에는 Pod, 배포 및 집합이 포함됩니다. Pod는 Kubernetes 클러스터에서 배포 가능한 가장 작은 단위입니다. 이러한 리소스는 노드에서 사용할 수 있는 프로세서 및 메모리 리소스를 최대한 활용할 수 있도록 하는 방식으로 여러 노드 간에 분산됩니다. Pod는 일반적으로 애플리케이션의 단일 인스턴스 또는 하위 구성 요소를 나타냅니다. Pod는 고객의 카트에 있는 항목을 관리하는 쇼핑 카트 구성 요소 또는 완료된 주문 처리를 이행하는 배송 구성 요소를 실행할 수 있습니다.

동일한 Pod의 여러 복사본(복제본이라고 함)을 실행할 수 있습니다. 복제본은 여러 노드 간에 여러 Pod를 배포하여 고가용성을 제공합니다. 여러 개의 Pod 복제본을 사용하면 Pod에서 실행되는 구성 요소에 오류가 발생하는 경우 애플리케이션이 계속 작동할 수 있습니다.

Diagram that shows multiple pod replicas running across several Kubernetes cluster nodes.

Kubernetes의 크기 조정 기능을 사용하면 클러스터의 수요 수준에 따라 Pod를 추가하거나 제거할 수 있습니다. Kubernetes의 자동 복구 기능은 실패하는 모든 Pod를 대체할 수 있으며, 롤링 업데이트에 대한 기본 제공 지원은 가동 중지 시간 없이 새 버전의 애플리케이션 배포를 자동화합니다.

Pod에는 초기 배포 중에 새 IP 주소가 할당됩니다. 이 IP 주소는 Pod와의 모든 네트워크 통신에 사용됩니다. Pod에 새 IP 주소를 할당하는 여러 시나리오가 있습니다. 클러스터 수요가 높고 크기 조정이 발생하면 새 Pod가 배포됩니다. 애플리케이션을 업데이트하면 새 Pod가 배포되어 이전 Pod를 대체합니다. Pod가 실패하면 새 Pod로 자동으로 대체됩니다. 이러한 모든 시나리오로 인해 새 Pod IP 주소가 만들어집니다.

Pod의 IP 주소가 자주 변경되는 경우 Kubernetes는 애플리케이션에 도달하기 위해 네트워크 트래픽을 전송할 위치를 어떻게 알 수 있나요? 대답은 서비스입니다.

Services

Kubernetes 서비스는 Pod 그룹 앞에 위치하고 고정 IP 주소를 제공합니다. 트래픽이 서비스에 도달하면 라운드 로빈 방식으로 백 엔드 Pod 집합에 배포됩니다. 서비스는 Pod의 IP 주소 변경 내용을 추적하여 네트워크 트래픽이 올바른 Pod로 전송되도록 합니다.

Diagram that shows multiple pod replicas being served network traffic via a Kubernetes service.