이 글은 아래 자료를 참고하여 작성되었습니다.
Udemy [Certified Kubernetes Administrator (CKA) with Practice Tests]
1. Kube-proxy란?
Kube-proxy는 Kubernetes 클러스터의 각 노드에서 실행되는 네트워크 프록시로, 서비스로 들어오는 트래픽을 적절한 파드로 라우팅 하는 역할을 한다. 이를 통해 클러스터 내의 파드들이 서로 통신할 수 있도록 지원하는 중요한 컴포넌트이다. 서비스라는 가상 컴포넌트를 활용해 고정된 IP 주소를 제공하며, 파드의 라이프사이클 동안 IP 주소가 변경되더라도 안정적인 통신을 보장한다.
2. Kube-proxy의 주요 역할
- 서비스와 파드 간의 트래픽 라우팅:
- 서비스의 역할: 파드 간의 통신은 파드의 IP 주소를 통해 이루어지지만, 파드의 IP는 동적이며 파드가 재시작되거나 이동할 때마다 변경될 수 있다. 이를 해결하기 위해, kubenetes는 서비스라는 가상 컴포넌트를 사용한다. 서비스는 클러스터 내에서 특정 파드를 대표하며, 고정된 IP 주소와 DNS 이름을 제공해 다른 파드들이 이를 통해 통신할 수 있도록 한다.
- 트래픽 라우팅: Kube-proxy는 클러스터 내에서 새로운 서비스가 생성될 때마다 해당 서비스에 대한 트래픽을 적절한 파드로 라우팅하기 위해 iptables 또는 IPVS와 같은 네트워크 규칙을 설정한다. 예를 들어, 서비스 IP로 들어오는 트래픽을 백엔드 파드의 IP로 전달하는 규칙을 각 노드에 설정한다.
- 가상 컴포넌트로서의 서비스 관리:
- 서비스는 실제 물리적인 객체가 아니라 메모리 내에만 존재하는 가상 컴포넌트로, 파드와 달리 네트워크 인터페이스나 활성화된 프로세스가 없다. 그러나 Kube-proxy는 네트워크 규칙을 설정하여 서비스가 물리적으로 존재하는 것처럼 동작하게 만든다.
- 클러스터 전반의 트래픽 관리:
- Kube-proxy는 클러스터 내의 모든 노드에서 실행되며, 새로운 서비스가 생성될 때마다 해당 규칙을 각 노드에 적용한다. 이를 통해 클러스터 내 어디서든 서비스에 안정적으로 접근할 수 있게 하고, 트래픽을 원활하게 분배하며 관리한다.
3. Kube-proxy 설치 및 구성
- 설치 방법: Kube Proxy는 Kubernetes 릴리스 페이지에서 바이너리 파일로 제공되며, 이를 다운로드한 후 서비스로 실행하거나 Kubeadm을 활용할 수 있다. Kubeadm을 이용하는 경우, Kube-proxy는 DaemonSet으로 배포된다. (각 노드에 하나의 pod이 배포된다)
'Kubernetes' 카테고리의 다른 글
23. Scheduling - Labels and Selectors (0) | 2024.10.27 |
---|---|
22. Scheduling - Manual Scheduling (0) | 2024.10.27 |
20. Core Concepts - Kubelet (3) | 2024.09.25 |
19. Core Concepts - Kube Scheduler (0) | 2024.09.25 |
18. Core Concepts - Kube Controller Manager (2) | 2024.09.23 |