- 설정들을 mapping
- 프로젝트할 때.. 이메일인증을 그냥 올렸더니. 내 이메일 많이 사용했다...
- 알려지면 안되는 값들을 키:값 으로 저장해 놓고 사용!
- 컨테이너가 설정값들을 가져올 수 있도록!
ConfigMap
- 암호화하려면 secrit을 사용!
- configmap 생성
apiVersion: v1
kind: ConfigMap
metadata:
name: cm-dev
data:
SSH: 'false'
User: dev
apiVersion: v1
kind: Pod
metadata:
name: volume-test-node-01
labels:
app: volume
spec:
nodeSelector:
kubernetes.io/hostname: node-01
containers:
- name: hello-container1
image: gugucone/hello:8000
volumeMounts:
- name: host-path
mountPath: /db-data
ports:
- containerPort: 8000
envFrom:
- configMapRef:
name: cm-dev
- 확인
django - db 연동
- 공유되면 안되는 파일을 따로 관리를!
- config-setting 에서 노출되면 안되는 정보들
DB
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-dev
data:
MYSQL_ROOT_PASSWORD: 'qwer1234'
apiVersion: v1
kind: Pod
metadata:
name: mysql-pod
spec:
containers:
- name: container
image: mysql:8.0.32-debian
envFrom:
- configMapRef:
name: mysql-dev
django
FROM python:3.9
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY requirements.txt /app/requirements.txt
COPY . /app
RUN pip install -r requirements.txt
CMD python manage.py makemigrations
CMD python manage.py migrate
CMD python manage.py runserver 0.0.0.0:8000
apiVersion: v1
kind: ConfigMap
metadata:
name: django-dev
data:
"DBHOST": "[pod에 생성된 DB IP 주소]"
"DBNAME": "web"
"DBPASS": "qwer1234"
"DBPORT": "3306"
"DBUSER": "root"
apiVersion: v1
kind: Pod
metadata:
name: django-pod
spec:
containers:
- name: container
image: ddarahakit2023/dj:1.2
# 도커 이미지를 잘못만들었다... 이 이미지 사용!
envFrom:
- configMapRef:
name: django-dev