CKA SimB - Q2 Static Pod 및 Service 생성

1 개요[ | ]

Static Pod 생성 및 NodePort 서비스로 외부 노출
  • controlplane 노드에 static Pod를 생성하고, 해당 Pod를 NodePort 서비스로 노출하여 외부에서 접근 가능하게 설정하는 실습
  • static Pod는 /etc/kubernetes/manifests 디렉터리에 직접 YAML 파일을 배치하여 kubelet이 자동으로 관리함
  • NodePort 타입의 서비스는 클러스터 외부에서 노드 IP와 지정된 포트를 통해 접근할 수 있도록 한다

2 Static Pod 생성[ | ]

  • nginx:1-alpine 이미지를 사용한 Pod YAML 템플릿 생성
# k run my-static-pod --image=nginx:1-alpine -o yaml --dry-run=client > /etc/kubernetes/manifests/my-static-pod.yaml
  • 자원 요청 명시 (cpu: 10m, memory: 20Mi)
spec:
  containers:
  - name: my-static-pod
    image: nginx:1-alpine
    resources:
      requests:
        cpu: 10m
        memory: 20Mi

3 Static Pod 확인[ | ]

  • 생성된 static Pod는 자동으로 실행되며, 이름 형식은 Pod이름-노드이름 형식으로 지정됨
# k get pod -A | grep my-static
default     my-static-pod-cka2560    1/1   Running   0   10s

4 NodePort 서비스 생성[ | ]

  • static Pod를 노출하기 위한 NodePort 서비스 생성
  • Pod에 run: my-static-pod 라벨이 자동 부여되므로, 서비스는 해당 셀렉터를 통해 Pod를 연결
# k expose pod my-static-pod-cka2560 --name static-pod-service --type=NodePort --port 80
service/static-pod-service exposed

5 서비스 및 엔드포인트 확인[ | ]

  • 노출된 서비스와 연결된 Pod IP 확인
# k get svc,ep -l run=my-static-pod
NAME                         TYPE       CLUSTER-IP      PORT(S)        AGE
service/static-pod-service   NodePort   10.98.249.240   80:32699/TCP   10s

NAME                           ENDPOINTS      AGE
endpoints/static-pod-service   10.32.0.4:80   10s

6 노드 IP 및 포트로 접속 확인[ | ]

  • NodePort는 노드의 내부 IP와 서비스 포트를 통해 접근 가능
  • Pod가 동작 중인 노드의 IP 확인
# k get node -o wide
NAME       INTERNAL-IP
cka2560    192.168.100.31
  • 외부에서 NodePort 포트로 curl로 접속 확인
# curl 192.168.100.31:32699
<!DOCTYPE html>
<html>
<head><title>Welcome to nginx!</title></head>
<body>
<h1>Welcome to nginx!</h1>
...
</body>
</html>
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}