본문 바로가기
쿠버네티스

[Kubernetes] 컨테이너 외부 노출

by 알 수 없는 사용자 2023. 7. 10.
반응형

컨테이너 외부노출이란?

쿠버네티스에 배포된 컨테이너들은 기본적으로 쿠버네티스 클러스터 내에서 동작한다.
그러므로 외부에서 접근할 경우 서비스라는것을 생성해주어야 한다.
쿠버네티스에서 서비스는 expose 시킨다라고도 표현하며 외부에서 내부컨테이너 포트를 매핑시켜주는것과 같다.


# 외부노출 시키기 - yaml

쿠버네티스에서 외부로 노출시키기위해선 service를 배포하거나 cli로 바로 expose 시킬 수 있다.
서비스를 배포할 때에는 yaml 파일을 작성하여 배포 할 수 있다.

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app.kubernetes.io/name: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376

위 yaml 내용은 80번 포트는 외부로 노출시킨다는 뜻이며 컨테이너의 9376 포트로 매핑되어있다.

이외에도 type, external-IP 등을 셋팅하여 배포 할 수 있다.

외부노출 시키기 - expose

kubectl expose -n <namespace>  <kind> <pod> -name [서비스네임] --port --target-port

CLI를 통해 위와같이 expose 할 수도 있다.

반응형