728x90
클러스터 연결 서비스
- 쿠버네티스 클러스터에서 웹의 프론트엔드 서비스를 실행하는 파드의 경우 쿠버네티스 클러스터를 외부로 노출시켜 접근 가능하도록 구성
- 클러스터 외부 서비스: NodePort, Ingress, 로드밸런서, MetalLB, HPA
NodePort 서비스
testapp-svc-np.yml
필드 | 속성 값 |
.spec.type | 서비스 타입 (기본 값: ClusterIP) |
.spec.ports.nodePort | 30000-32767 포트, 포트를 지정하지 않으면 랜덤한 포트 지정 |
- 레플리카셋 생성
vagrant@kube-master1:~/test$ cat testapp-rs-named-port.yml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: testapp-rs-named-port
spec:
replicas: 3
selector:
matchLabels:
app: testapp-rs
template:
metadata:
labels:
app: testapp-rs
spec:
containers:
- name: testapp
image: c1t1d0s7/myweb
ports:
- name: testapp-http
containerPort: 8080
imagePullPolicy: Never
vagrant@kube-master1:~/test$ kubectl create -f testapp-rs-named-port.yml
replicaset.apps/testapp-rs-named-port created
- 노드 포트 서비스 생성
- 서비스 타입: NodePort
- 노드에 노출할 포트 번호: 31000 (포트 번호는 30000-32767 내에서만 사용 가능)
vagrant@kube-master1:~/test$ cat testapp-svc-np.yml
apiVersion: v1
kind: Service
metadata:
name: testapp-svc-np
spec:
type: NodePort
ports:
- name: testapp-http
port: 80
targetPort: testapp-http
nodePort: 31000
selector:
app: testapp-rs
vagrant@kube-master1:~/test$ kubectl create -f testapp-svc-np.yml
service/testapp-svc-np created
- 노드의 IP 확인
vagrant@kube-master1:~/test$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
kube-master1 Ready master 4d3h v1.18.10 192.168.56.11 <none> Ubuntu 18.04.6 LTS 4.15.0-187-generic docker://19.3.12
kube-node1 Ready <none> 4d3h v1.18.10 192.168.56.21 <none> Ubuntu 18.04.6 LTS 4.15.0-187-generic docker://19.3.12
kube-node2 Ready <none> 4d3h v1.18.10 192.168.56.22 <none> Ubuntu 18.04.6 LTS 4.15.0-187-generic docker://19.3.12
kube-node3 Ready <none> 4d3h v1.18.10 192.168.56.23 <none> Ubuntu 18.04.6 LTS 4.15.0-187-generic docker://19.3.12
- 접속 확인
- curl 노드 IP:31000
vagrant@kube-master1:~/test$ kubectl run nettool -it --image=ghcr.io/c1t1d0s7/network-multitool --rm bash
If you don't see a command prompt, try pressing enter.
bash-5.1# curl 192.168.56.11:31000
- 외부에서 접속 확인
- 외부에서 노드의 IP:31000으로 접속하면, 서비스 포트인 80번 포트로 리다이렉션되며, 이는 다시 내부 파드의 8080번 포트로 리다이렉션 되는 것을 확인할 수 있음
728x90
'쿠버네티스 교육 > 강의 내용 정리' 카테고리의 다른 글
220628_1_k8s_프로브-readinessProbe (0) | 2022.06.28 |
---|---|
220627_3_k8s_연결 서비스_MetalLB (0) | 2022.06.27 |
220624_1_k8s_클러스터 내부 서비스-Cluster IP (0) | 2022.06.24 |
220623_2_k8s_컨트롤러-Job Controller (0) | 2022.06.23 |
220623_1_k8s_컨트롤러-DaemonSet (0) | 2022.06.23 |