본문 바로가기

IT 엔지니어/CLOUD

K8S -MONGO DB

 

1. Secret (MongoDB ID/PW)

apiVersion: v1
kind: Secret
metadata:
  name: mgdb
type: Opaque
data:
  mongo-root-username: YWRtaW4=       # admin (base64 인코딩)
  mongo-root-password: cGFzc3dvcmQ=   # password (base64 인코딩)


2. MongoDB Deployment + Service

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mymongo
  labels:
    app: mgdb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mgdb
  template:
    metadata:
      labels:
        app: mgdb
    spec:
      containers:
      - name: mgdb
        image: mongo
        ports:
        - containerPort: 27017
        env:
        - name: MONGO_INITDB_ROOT_USERNAME
          valueFrom:
            secretKeyRef:
              name: mgdb
              key: mongo-root-username
        - name: MONGO_INITDB_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mgdb
              key: mongo-root-password
---
apiVersion: v1
kind: Service
metadata:
  name: mgservice
spec:
  selector:
    app: mgdb
  ports:
  - protocol: TCP
    port: 27017
    targetPort: 27017


3. ConfigMap (MongoDB EX 서비스 이름 설정)

apiVersion: v1
kind: ConfigMap
metadata:
  name: mymongoex
data:
  database_url: mgservice


4. Mongo Express Deployment + Service

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mymongoex
  labels:
    app: mymongoex
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mymongoex
  template:
    metadata:
      labels:
        app: mymongoex
    spec:
      containers:
      - name: mymongoex
        image: mongo-express
        ports:
        - containerPort: 8081
        env:
        - name: ME_CONFIG_MONGODB_ADMINUSERNAME
          valueFrom:
            secretKeyRef:
              name: mgdb
              key: mongo-root-username
        - name: ME_CONFIG_MONGODB_ADMINPASSWORD
          valueFrom:
            secretKeyRef:
              name: mgdb
              key: mongo-root-password
        - name: ME_CONFIG_MONGODB_SERVER
          valueFrom:
            configMapKeyRef:
              name: mymongoex
              key: database_url
---
apiVersion: v1
kind: Service
metadata:
  name: mymongoex-svc
spec:
  selector:
    app: mymongoex
  ports:
  - port: 8081
    targetPort: 8081
    nodePort: 30081
  type: NodePort


이 구성은 mongo는 내부 서비스(mgservice)로 제공하고, mongo-express는 NodePort를 통해 외부에서 접근할 수 있게 합니다.

💡 TIP: mongo-express에 브라우저로 접근 클러스터 노드의 IP + 30081 포트 사용

http://<Node-IP>:30081

 

'IT 엔지니어 > CLOUD' 카테고리의 다른 글

AWS - VPC / RDS  (1) 2025.06.05
K8S - strorage  (0) 2025.06.04
K8S - ConfigMap -1  (3) 2025.06.02
Labels/ Annotations  (1) 2025.06.01
K8S - ingress  (0) 2025.05.31