pod 끼리 네트워크 통신이 가능한다.
pod는 생성시 임의로 ip를 받는다.
만약 pod가 지워졌다 다시 생성이 되었다면, 새로운 임의의 ip를 부여 받는다.
ip로 통신하는 것은 사용하지 않는다. 왜냐하면 ip 주소는 pod가 대체될 때마다 바뀌기 때문이다.
인터넷에서는 ip 대신 도메인 네임을 이용해 해당 문제를 해결했다. k8s도 동일하게 dns로 이 문제를 해결할 수 있다.
1. cluster ip
클러스터 ip는 클러스터 전체에서 통용되는 ip 주소를 생성하는데, 이 ip 주소는 파드가 어느 노드에 있더라도 접근이 가능하다.
하지만 이 ip 주소는 클러스터 내에서만 유효하다.
따라서 클러스터 ip는 파드와 파드 간 통신에서만 쓰인다.
내부에서는 접근이 가능하되 외부의 접근은 차단해야 하는 분산 시스템의 컴포넌트에 매우 적합하다.
$ kubectl get svc

service의 정보를 가져온 것이다.
서비스는 cluster-ip 값을 갖고 있다. 해당 서비스와 pod을 연결하면 서비스의 클러스터 ip 주소로 pod에 접근이 가능해진다.
apiVersion: v1
kind: Service
metadata:
name: sleep-2 # 서비스 이름이 도메인 네임으로 사용된다.
# 서비스 정의에는 셀렉터와 포트의 목록이 포함되어야 한다.
spec:
selector:
app: sleep-2 # app 레이블의 값이 sleep-2인 모든 파드가 대상이다.
ports:
- port: 80 # 80번 포트를 주시하다가 파드의 80번 포트로 트래픽을 전달한다.
type: ClusterIP # 서비스 타입을 명시한다.
2. 로드 밸런서
클러스터 외부에서 들어오는 트레픽을 파드에 전달하는 여러가지 방법 중에 하나이다.
로드 밸런서는 트래픽을 받은 노드가 아닌 노드에서 실행되는 파드에도 트래픽을 전달할 수 있다.
- 로드 밸런서는 외부 로드밸런서와 함께 동작하며, 레이블 셀럭터와 일치하는 파드로 트래픽을 전달한다.
- 로드밸런서 서비스의 커버 범위는 클러스터 전체다. 따라서 어느 노드에 있는 파드라도 트래픽을 전달받을 수 있다.
대상 파드가 요청받은 노드에 있지 않더라도 쿠버네티스가 올바른 노드까지 이 트래픽을 전달한다.

서비스의 레이블 셀렉터와 일치하는 파드가 많으면 파드보다 먼저 노드를 선택해야 하니 까다로운 문제처럼 보인다.
그러나 이런 문제는 k8s의 로드밸런서가 해결해준다.
apiVersion: v1
kind: Service
metadata:
name: numbers-web
spec:
ports:
- port: 8080
targetPort: 80
selector:
app: numbers-web
type: LoadBalancer
로드 밸런서 주의사항
k8s는 분산 환경에 따라 기능이 구현되는 방식에 차이가 생긴다. 로드밸런서 서비스도 분산 환경에 따라 구현 방식의 차이가 발생된다.
- 도커 데스크톱의 k8s는 로컬 개발 환경이다. 이 클러스터는 단일 컴퓨터에서 동작하며, 로컬 컴퓨터의 네트워크 스택과 통합되어 로드밸런서 서비스가 로컬 호스트 주소를 사용할 수 있다. 모든 로드밸런서 서비스가 localhost로 외부에 공개된다. 따라서 다수의 로드밸런서 서비스를 사용할려면 이들의 포트를 각각 다르게 설정해야한다.
- k3s 환경의 쿠버네티스에서는 별도의 라우팅 테이블을 설정하는 방식으로 로드밸런서 서비스를 구현했다. 각각의 로드밸런서 서비스는 호스트 컴퓨터(or 가상머신)의 ip 주소로 외부에 공개된다. 따라서 localhost 또는 ip 주소(로컬 네트워크에서 접근도 가능)로 로드 밸런서 서비스에 접근할 수 있다. 여러 개의 로드밸런서 서비스를 사용할려면 이들의 포트를 각각 다르게 설정해야한다.
'K8S' 카테고리의 다른 글
| [K8S] 쿠버네티스 컴포넌트 (1) | 2025.07.27 |
|---|---|
| [K8S] Minikube로 kubernetes 환경 셋업 (1) | 2025.07.27 |
| [k8s] 멀티 컨테이너 (0) | 2025.04.13 |
| Kubernetes API 사용해서 Deployment 정보 수정하기 (0) | 2025.03.17 |
| [K8S] 외부 cluster 연결하기 (0) | 2025.03.17 |