본문 바로가기

Infra/Kubernetes

[cka] Kubernetes - kube proxy

1. kube proxy 란?

- 클러스터 내의 모든 pod는 다른 pod에 접근 가능

- 가능 이유?) pod 네트워킹 솔류션 배포해서

- pod 네트워크는 클러스터의 모든 노드를 가로지르는 내부의 가상 네트워크 -> 이 네트워크를 통해 pod들끼리 서로 통신 가능

 

2. pod 네트워킹 솔루션

배포를 위한 방법

예시) application 앱이 배포된 pod(1), database가 배포된 pod(2) 

- 각 클러스터에 할당되는 ip는 유동적이다 (ex, 10.32.0.14 / 10.32.0.15 ...)

- service는 실제 존재하지 않아 포트 네트워크에 가입안됨. (kubernetes 메모리에만 존재하는 가상의 컴포넌트)

- 존재하지 않기에 interface나 활성 청위 process가 없음

- 그러면 어떻게 service가 각 클러스터에 접근가능한가?

- 각 클러스터의 노드에 실행되는 kube-proxy 프로세스를 둠으로써 가능해짐

- 이 kube-proxy 프로세스의 역할은 새로운 service를 찾는 역할

- 새로운 service가 생성될 때마다 kube proxy는 각 노드에 적절한 규칙을 생성해 트래픽을 백엔드 포트로 전달

- 이 작업을 수행하는 방법은 IP 테이블 규칙 사용해서

- 서비스의 IP로 향하는 트래픽을 실제 포드의 IP로 전달

 

3. 설치 방법

- kube adm 설치시 demonset으로 배포됨 -> 각 노드에 하나이상의 포드가 배포됨

- kubectl get pods -n kube -system

- kubectl get daemonset -n kube-system

'Infra > Kubernetes' 카테고리의 다른 글

[cka] Kubernetes - Replicaset  (0) 2025.10.05
[cka] Kubernetes - pod 명령어 정리  (0) 2025.10.05
[cka] Kubernetes - Pods  (0) 2025.10.04
[cka] Kubernetes - kube scheduler  (0) 2025.10.04
[cka] Kubernetes - kube API  (0) 2025.10.04