트래픽 분산을 위해 Pod를 여러개로 구성할때, IP주소의 변동 및 로드밸런싱을 해줄 개체가 필요합니다.
Service Type
ClusterIP (default)
- 외부에서접속이 불가하며 Cluster내부에서만 접근 가능한 서비스타입
NodePort
- NodePort를 통해 외부네트워크에서 접속가능한 서비스타입
- 운영환경에서는 사용하기에 적절하지 않음
LoadBalancer
- 3Party LoadBalancer의 도움을 받아 외부에서 접속 가능한 서비스타입
Service Manifest
Service 실습
ClusterIP (default)
NodePort
LoadBalancer
nginx-svc-lb.yaml
apiVersion: v1 kind: Service metadata: labels: app: myapp-svc type: front-end name: nginx-svc-lb spec: type: LoadBalancer ports: - port: 80 protocol: TCP targetPort: 80 selector: type: front-end
sansae@sansaeAir15m2 k8s-lab-workspace % k apply -f nginx-svc-lb.yaml service/nginx-svc-lb created sansae@sansaeAir15m2 k8s-lab-workspace % k get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 29h nginx-svc ClusterIP 10.0.133.111 <none> 80/TCP 5h50m nginx-svc-lb LoadBalancer 10.0.69.70 <pending> 80:32050/TCP 5s nginx-svc-nodeport NodePort 10.0.159.138 <none> 80:30008/TCP 11m sansae@sansaeAir15m2 k8s-lab-workspace % k get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 29h nginx-svc ClusterIP 10.0.133.111 <none> 80/TCP 5h50m nginx-svc-lb LoadBalancer 10.0.69.70 20.249.176.154 80:32050/TCP 18s nginx-svc-nodeport NodePort 10.0.159.138 <none> 80:30008/TCP 11m sansae@sansaeAir15m2 k8s-lab-workspace %