2023. 2. 8. 08:39ㆍDevOps/CKA Test 준비
9.CKA-service_type_NodePort
NodePort
ClusterIP의 기능을 포함한, 외부에서 접속 가능한 port를 사용할 수 있는 port이다.
지정한 worker nodes의 nic card에 30000~32767번 사이의 random port를 부여해 준다.(해당 port는 같은 port를 사용한다.ex. worker node1의 port가 33333번 이 열렸으면 worker node2도 33333번) 해당 prot는 kube-porxy가 listening만 한다. 이 후 IP tables의 rule에 의해 배포해준다
apiVersion: v1
kind: Service
metadata:
name: nodeport-service
spec:
type: NodePort
==> 타입을 nodeport로 지정한다ㅣ
clusterIP: 10.100.100.200
==> clusterip를 할당해 내부 ip를 지정해 준다.
selector:
app: webui
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30200
==> nodePort를 30200번으로 개방할 것이다. 설정하지 않을 경우 렌덤으로 지정해 준다.
<문제>
front-end라는 deployment의 nginx container에 exporse 하는 front-end-nodesvc라는 새 service를 만드십시오.
작업 클러스터 : k8s
nodeport : 30200
1. 작업 클러스터로 먼저 이동한다
==> kubectl config use-context k8s
2. workernode가 연결되어 있는것을 확인한다
==> kubectl get nodes
3. front-end라는 deployment와 pod가 있는지 확인한다. 이 후 labels값과 port값을 확인한다.
==> kubectl get deployments front-end
==> kubetcl get pods | grep -i front-end
==> kubectl describe deployemnets.apps front-end-"podname" | grep -i -e port -e labels
4.service를 사용하기 위한 yaml을 생성한다. 이때 nodeport는 yaml에서 수정한다.
==> kubectl expose deployment front-end-nodesvc --port=80 --target-port=80 --type NodePort --dry-run=client -o yaml > front-end-nodesvc.yaml
apiVersion: v1
kind: Service
metadata:
creattionTimestamp: null
name: front-end-nodesvc
spce:
ports:
- port:
protocal: TCP
targetPort: 80
nodePort: 3020
==> nodePort를 고정값으로 지정한다.
selector:
run: nginx
type: NodePort
status:
loadBalncer: {}
5.k8s를 실행시키기
==> kubectl apply -f front-end-nodesvc.yaml
'DevOps > CKA Test 준비' 카테고리의 다른 글
11. CKA-ingress (0) | 2023.02.10 |
---|---|
10.CAK-Newtork Policy (0) | 2023.02.08 |
08.CKA-service_type_clusterip (0) | 2023.02.03 |
07.CKA-service (0) | 2023.02.03 |
06.CKA-SECRET 초안 (0) | 2023.02.03 |