[Retry, k8s] 11. 서비스 API - ClusterIP
카테고리: KUBERNETES
태그: kubernetes
[Retry, k8s] 11. 서비스 API - ClusterIP
🔔 ClientIP 서비스
-
쿠버네티스 클러스터 내부에서만 통신 가능한 타입으로, Internal Network에 생성되는 가상 IP가 할당된다.
-
ClusterIP와 통신은 각 노드상에서 실행 중인 시스템 구성 요소 kube-proxy가 파드로 전송을 실시한다.(단, Proxy-mode에 따라 다름)

📜 ClusterIP 서비스 생성
| 설정 | 개요 |
|---|---|
| spec.ports[].port | ClusterIP에서 수신할 포트 번호 |
| spec.ports[].targetPort | 목적지 컨테이너 포트 번호 |
cat <<EOF > sample-clusterip.yaml
apiVersion: v1
kind: Service
metadata:
name: sample-clusterip
spec:
type: ClusterIP
ports:
- name: "http-port"
protocol: "TCP"
port: 8080
targetPort: 80
selector:
app: sample-app
EOF
# 일시적으로 파드를 기동하여 ClusterIP로 전송되는 트래픽이 분산되는 것을 확인
$ kubectl run --image=amsy810/tools:v2.0 --restart=Never --rm -i testpod --command -- curl -s http://sample-clusterip:8080
Host=sample-clusterip Path=/ From=sample-deployment-7f47966499-82lld ClientIP=10.32.0.1 XFF=
pod "testpod" deleted
$ kubectl run --image=amsy810/tools:v2.0 --restart=Never --rm -i testpod --command -- curl -s http://sample-clusterip:8080
Host=sample-clusterip Path=/ From=sample-deployment-7f47966499-llctj ClientIP=10.32.0.1 XFF=
pod "testpod" deleted
📜 ClusterIP 가상 IP 정적 지정
cat <<EOF > sample-clusterip-vip.yaml
apiVersion: v1
kind: Service
metadata:
name: sample-clusterip-vip
spec:
type: ClusterIP
clusterIP: 10.99.202.36
ports:
- name: "http-port"
protocol: "TCP"
port: 8080
targetPort: 80
selector:
app: sample-app
EOF
댓글 남기기