반응형
ClusterIP
- selector의 label가 동일한 파드들을 그룹으로 묶어 단일 진입점 (Virtual IP)을 생성
- 클러스터 내부에서만 사용 가능
- type 생략 시 default 값으로 10.96.0.0/12 범위에서 할당 됨
- type을 고정시키지 않는 이유: 충돌을 예방하기 위해
Example
- create -f를 통해 ClusterIP Service 실행
- kubectl create -f clusterip-nginx.yaml
- get, describe를 통해 ClusterIP Service확인
- kubectl get service
- kubectl describe svc clusterip-service
- curl 이용 ClusterIP 접속
- curl 10.100.100.100
- delete를 통해 ClusterIP Service 삭제
- kubectl delete svc clusterip-service
NodePort
- 모든 노드를 대상으로 외부 접속 가능한 포트를 예약
- ClusterIP는 클러스터 내부에서만 사용 가능한 반면 NodePort 이용시 해당 포트로 외부에서 접속 가능
- NodePort는 외부에서 접근할 수 있도록 도움
- Default NodePort 범위: 30000-32767
- ClusterIP를 생성 후 NodePort를 예약
Example
- create -f를 통해 NodePort Service 실행
- kubectl create -f nodeport-nginx.yaml
- get, describe를 통해 NodePort Service확인
- kubectl get service
- kubectl describe svc nodeport-service
- curl 이용 외부 접속
- curl node1.example.com:30200
- delete를 통해 NodePort Service 삭제
- kubectl delete svc nodeport-service
LoadBalancer
- Public 클라우드(AWS, Azure, GCP 등)에서 운영 가능
- LoadBalancer를 자동으로 구성 요청
- NodePort를 예약 후 해당 nodeport로 외부 접근을 허용
Example
- create -f를 통해 LoadBalancer Service 실행
- kubectl create -f loadbalancer-nginx.yaml
- get을 통해 LoadBalancer Service확인
- kubectl get service
- delete를 통해 LoadBalancer Service 삭제
- kubectl delete svc loadbalancer-service
ExternalName
- 클러스터 내부에서 External(외부)의 도메인을 설정
- ExternalName은 DNS(Domain Name Service)를 지원
- 클러스터 내부에서 외부로 나갈 수 있는 도메인 등록
- 쿠버네티스 도메인이 외부 도메인으로 치환
Example
- create -f를 통해 ExternalName Service 실행
- kubectl create -f externalname.yaml
- get을 통해 ExternalName Service확인
- kubectl get service
- curl 이용 쿠버네티스 도메인 접속 -> 외부 도메인 치환되어 접속 (클러스터 내의 pod에서 작동)
- curl externalname-svc.default.svc.cluster.local
- externalname-svc: ExternalName Service 이름
- default.svc.cluster.local: 쿠버네티스 도메인
- delete를 통해 ExternalName Service 삭제
- kubectl delete svc externalname-svc
Reference
반응형
'Kubernetes(k8s) > 따배쿠(따라하면서 배우는 쿠버네티스) 학습' 카테고리의 다른 글
[k8s]Kubernetes - Ingress (0) | 2023.03.14 |
---|---|
[k8s]Kubernetes - Headless Service/Kube Proxy (0) | 2023.03.09 |
[k8s]Kubernetes - Service (0) | 2023.03.09 |
[k8s]Kubernetes - 멀티마스터 쿠버네티스 클러스터 (0) | 2023.03.07 |
[k8s]Kubernetes - CronJob (0) | 2023.03.04 |