[Retry, k8s] 11. 서비스 API - ClusterIP

Date:     Updated:

카테고리:

태그:

[Retry, k8s] 11. 서비스 API - ClusterIP



🔔 ClientIP 서비스

  • 쿠버네티스 클러스터 내부에서만 통신 가능한 타입으로, Internal Network에 생성되는 가상 IP가 할당된다.

  • ClusterIP와 통신은 각 노드상에서 실행 중인 시스템 구성 요소 kube-proxy가 파드로 전송을 실시한다.(단, Proxy-mode에 따라 다름)

3


📜 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


KUBERNETES 카테고리 내 다른 글 보러가기

댓글 남기기