ClusterIP란?
- selector의 label이 동일한 pod들의 그룹으로 묶어 단일 진입점(Virtual IP)을 생성
- cluster내부에서만 사용 가능
- 랜덤하게 loadbalacing을 하지만 균등하게 서비스 될 수 있도록 지원
- type 생략 시 default 값으로 10.96.0.0/12 범위에서 할당됨
- clusterIP는 IP 중첩을 방지하기 위해 주로 고정시키지 않고 사용함
- definition
apiVersion: v1
kind: Service
metadata:
name: clusterip-service
spec:
type: ClusterIP
clusterIP: 10.100.100.100
selector:
app: webui
ports:
- protocol: TCP
port: 80
targetPort: 80
[ hands - on ]
- Deploy yaml 파일 생성 및 실행
vi deploy-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: webui
spec:
replicas: 3
selector:
matchLabels:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
kubectl create -f deploy-nginx.yaml
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
webui-6d75c5dd9b-24hkz 1/1 Running 0 112s 192.168.11.120 node1.example.com <none> <none>
webui-6d75c5dd9b-9qbv2 1/1 Running 0 112s 192.168.11.121 node1.example.com <none> <none>
webui-6d75c5dd9b-tfh56 1/1 Running 0 112s 192.168.221.10 node2.example.com <none> <none>
- 3개의 pod를 묶어주는 clusterIP 생성
vi clusterip-nginx.yaml
apiVersion: v1
kind: Service
metadata:
name: clusterip-service
spec:
type: ClusterIP
clusterIP: 10.100.100.100 # 생략가능
selector:
app: webui
ports:
- protocol: TCP
port: 80
targetPort: 80
kubectl create -f clusterip-nginx.yaml
- clusterIP 생성 확인
kubectl get service clusterip-service
kubectl describe service clusterip-service
Name: clusterip-service
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=webui
Type: ClusterIP
IP Family Policy: SingleStack
IP Families: IPv4
IP: 10.100.100.100
IPs: 10.100.100.100
Port: <unset> 80/TCP
TargetPort: 80/TCP
Endpoints: 192.168.11.120:80,192.168.11.121:80,192.168.221.10:80
Session Affinity: None
Events: <none>
참고 :
https://www.youtube.com/watch?v=WaJyY5KvZj8&list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c&index=26
'INFRA > DevOps' 카테고리의 다른 글
[K8s] LoadBalancer (AKS에서 진행) (0) | 2022.11.21 |
---|---|
[k8s] NodePort (0) | 2022.11.15 |
[k8s] Cronjob (0) | 2022.11.01 |
[K8s] Job Controller (0) | 2022.10.24 |
[k8s] Statefulset (0) | 2022.10.19 |
댓글