Minikube는 별도의 쿠버네티스 클러스터를 구성하지 않고 빠르게 로컬 쿠버네티스 클러스터를 구성해준다.
아무래도 로컬 환경으로 사용하다보니 쿠버네티스에서 사용되는 일부 오브젝트들을 사용하기 까다로운 경우가 있다.
서비스 타입 중 하나인 NodePort 역시 도커 드라이버를 통해 Minikube를 구성할 경우
Node IP를 직접적으로 사용하기 어려운 경향이 있다.
이를 해결하기 위해서 tunnel과 함께 minikube service라는 기능을 사용해야 한다.
먼저 상황을 가정하기 위해 deploy.yml과 svc-np.yml을 만들어 봤다.
depoly.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-deploy
spec:
replicas: 3
selector: # deployment - pod 대응용
matchLabels:
app: web
template: # 여기서부터 파드 템플릿
metadata:
labels:
app: web # 파드의 라벨
spec:
containers:
- name: nginx
image: nginx:latest
svc-np.yml
apiVersion: v1
kind: Service
metadata:
name: web-service-np
spec:
selector:
app: web
ports:
- protocol: TCP
port: 80
type: NodePort
이제 2개의 파일 모두 실행을 시켜준다.
정상적으로 Deployment, NodePort 모두 실행되고 있는 것을 알 수 있다.
이제 minikube에서 minikube service web-service-np --url를 실행해준다.
이제 현재 터미널을 종료하지 않고 새로운 터미널을 열어 ps -ef | grep docker@127.0.0.1를 실행시켜준다.
NodePort의 Cluster IP와 port가 minikube에서 지정한 61544 포트에 바인딩되는 것을 확인할 수 있다.
이제 127.0.0.1:바인딩된포트번호를 추가하면 minikube 환경에서 클러스터 외부에서 내부 파드에 접근할 수 있게 된다.
'DevOps' 카테고리의 다른 글
쿠버네티스 패키지 매니저 Helm (0) | 2022.08.17 |
---|---|
Skaffold와 Cloud Code (0) | 2022.07.04 |
Kubernetes Context 적용방법 (0) | 2022.06.28 |
chroot로 컨테이너 환경 간접 체험하기 (0) | 2022.06.06 |
Docker Image와 Dockerfile로 알아보는 Image Layer (0) | 2022.04.03 |