쿠버네티스
[Kubernetes] 컨테이너 외부 노출
알 수 없는 사용자
2023. 7. 10. 12:17
반응형
컨테이너 외부노출이란?
쿠버네티스에 배포된 컨테이너들은 기본적으로 쿠버네티스 클러스터 내에서 동작한다.
그러므로 외부에서 접근할 경우 서비스라는것을 생성해주어야 한다.
쿠버네티스에서 서비스는 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 할 수도 있다.
반응형