노드 포트 방식
MiniO 서비스를 위한 Deployment
apiVersion: apps/v1
# 종류 : Deployment
kind: Deployment
metadata:
# Deployment 이름
name: minio
spec:
# 복제 1개
replicas: 1
selector:
matchLabels:
# app: minio의 라벨을 가지면 매치
app: minio
strategy:
type: Recreate
template:
metadata:
labels:
app: minio
spec:
# key: localhost의 라벨을 가진 node를 선택
nodeSelector:
key: localhost
nodeName: da-pc-0118
volumes:
- name: storage
hostPath:
path: /data/minio
containers:
- name: minio
image: minio/minio:latest
args:
- server
- --console-address
- ":9001"
- "/storage"
env:
- name: MINIO_ACCESS_KEY
value: "minio"
- name: MINIO_SECRET_KEY
value: "minio123"
- name: TZ
value: Asia/Seoul
- name: LANG
value: ko_KR.utf8
ports:
- containerPort: 9000
hostPort: 9000
- containerPort: 9001
hostPort: 9001
volumeMounts:
- name: storage
mountPath: "/storage"
MiniO 서비스를 외부로 노출하기 위한 Service를 선언
apiVersion: v1
kind: Service
metadata:
name: minio
labels:
run: minio
spec:
# type: NodePort로 지정(기본값: clusterIP)
# NodePort : 고정 포트로 각 노드의 IP에 서비스를 노출
type: NodePort
ports:
- port: 9000
targetPort: 9000
nodePort: 30333
name: api
- port: 9001
targetPort: 9001
nodePort: 30334
name: ui
selector:
app: minio
전체 서비스 흐름으로 보면 NodePort --> Port --> targetPort
NodePort
port
targetPort
rancher-desktop을 이용하여 진행(wsl-ubuntu 사용)
- 가지고 있는 yml파일을 이용해 create
- 외부 주소를 이용해 파일을 create
참고 내용
kubectl create -f minio-deployment.yml
#또는
kubectl apply -f minio deployment.yml
kubectl get deployment
kubectl create -f minio-deployment.yml
# 또는
kubectl apply -f minio deployment.yml
kubectl get svc
kubectl get pods
#또는
kubectl get pod
# pod 전체
kubectl describe pods
# 해당 포드 상세 내용 확인
kubectl describe pods {포드명}
kubectl label nodes da-pc-0484 key=localhost
이렇게 로컬 환경에서 rancher-desktop을 이용해 kubernetes를 사용 하고 kubernets위에 MiniO를 띄워 MiniO 콘솔 브라우저에 접속하는 실습을 진행해 보았습니다.