[Retry, k8s] 12. 서비스 API - ExternalIP

Date:     Updated:

카테고리:

태그:

[Retry, k8s] 12. 서비스 API - ExternalIP



🔔 ExternalIP 서비스

  • 특정 쿠버네티스 노드 IP 주소:포트에서 수신한 트래픽을 컨테이너로 전송하는 형태로 외부와 통신할 수 있도록 하는 서비스

41


📜 ExternalIP 서비스 생성

설정 개요
spec.externalIPs 쿠버네티스 노드 IP 주소(ExternalIP)
spec.ports[].port ExternalIP와 ClientIP에서 수신할 포트 번호
spec.ports[].targetPort 목적지 컨테이너 포트 번호
cat <<EOF > sample-externalip.yaml
apiVersion: v1
kind: Service
metadata:
  name: sample-externalip
spec:
  type: ClusterIP
  externalIPs:
  - 192.168.219.101
  - 192.168.219.102
  ports:
  - name: "http-port"
    protocol: "TCP"
    port: 8080
    targetPort: 80
  selector:
    app: sample-app
EOF
# 쿠버네티스 노드 목록과 주소 출력
$ kubectl get nodes -o custom-columns="NAME:{metadata.name},IP:{status.addresses[].address}"
NAME         IP
k8s-master   192.168.219.100
k8s-node01   192.168.219.101
k8s-node02   192.168.219.102


# ExternalIP 서비스 확인
$  kubectl get service
NAME                TYPE        CLUSTER-IP      EXTERNAL-IP                       PORT(S)    AGE
kubernetes          ClusterIP   10.96.0.1       <none>                            443/TCP    32m
sample-externalip   ClusterIP   10.103.153.68   192.168.219.101,192.168.219.102   8080/TCP   4m24s


# 일시적으로 파드를 기동하여 A 레코드로 ClusterIP가 다른 파드에서 해석 가능함을 확인
$ kubectl run --image=amsy810/tools:v2.0 --restart=Never --rm -i testpod --command -- dig sample-externalip.default.svc.cluster.local

(생략)

;; QUESTION SECTION:
;sample-externalip.default.svc.cluster.local. IN        A

;; ANSWER SECTION:
sample-externalip.default.svc.cluster.local. 30 IN A 10.103.153.68


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

댓글 남기기