Orchestration/Kubernates (k8s)

[Mac OS] 파드 외부 노출 시키기 (k8s, kubernetes, pod)

chanstory 2023. 2. 14. 14:04
반응형

파드 외부로 노출 시키기

- 클러스터 안에 위치한 pod는 고유한 IP를 가지고 있지만, 직접 내부로 접속하는것이 아님

- 파드 서비스를 외부로 노출시키기 위해선 어떻게 해야 하는가?

 

서비스 리소스를 사용하면 파드에서 실행 중인 애플리케이션을 클러스터 외부에서 접근할 수 있다.
또한 서비스를 사용하여 클러스터 내부에서 사용할 수 있는 서비스만 게시할 수 있다.
쿠버네티스에서 서비스는 파드의 집합에 접근할 수 있는 정책을 정의하는 추상적 개념입니다.
서비스 리소스가 정의된 YAML 파일에 selector라는 것을 이용해 서비스할 대상 타겟을 설정할 수 있습니다.

 

파드 외부 노출 참고 링크

https://kubernetes.io/ko/docs/concepts/services-networking/

 

서비스, 로드밸런싱, 네트워킹

쿠버네티스의 네트워킹에 대한 개념과 리소스에 대해 설명한다.

kubernetes.io

 


서비스 만들어보기

 

* 서비스 리소스 예제

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  selector:
    app: nginx # 배포하려는 파드를 지정합니다. 당연히 파드가 이미 실행중이어야 합니다.
  type: LoadBalancer
  ports:
  - name: nginx
    protocol: TCP
    port: 80
    targetPort: 80

 

서비스 리소스 예제를 활용하여 파드 서비스 접속

% kubectl start
% kubectl apply -f <파일명.yaml>   // kubectl apply -f service-test.yaml
 
% kubectl get svc 
NAME         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
cozserver    LoadBalancer   10.111.181.232   <pending>     80:30185/TCP   12s
kubernetes   ClusterIP      10.96.0.1        <none>        443/TCP        2m14s

# minikube tunnel 명령 이용하면 EXTERNAL-IP 127.0.0.1 로 설정되어 localhost 로 접속이 가능해짐
    sudo 비밀번호 필요
반응형