ConfigMap 설정으로는 환경변수 설정, 파일로 마운트 등등 설정방법이 있으며 필자는 파일로 마운트 설정에 관해서 설명하려한다.
테스트 환경은 AWS EKS를 사용중이며 deployment,dockerfile을 통해 구성중이다.
apiVersion: v1
kind: ConfigMap
metadata:
name: jeonyj-conf
data:
nginx-conf: |
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
...
web-harulife-co-kr-conf: |
server {
...
}
web-harulife-kr-conf: |
server {
...
}
위와같이 configmap 관련 yaml 파일을 생성해준다.
해당파일을 EKS에 적용해준뒤 Deployment 설정을 봐준다.
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
run: ******
name: ******
namespace: "default"
spec:
selector:
matchLabels:
run: ******
revisionHistoryLimit: 2
template:
metadata:
labels:
run: ******
spec:
serviceAccountName: ****
containers:
- image: *****
imagePullPolicy: Always
name: "web-harulife-co-kr"
ports:
- containerPort: 80
env:
volumeMounts:
- name: nginx-main-conf-test ### 파일만 마운트
mountPath: /etc/nginx/nginx.conf
readOnly: true
subPath: nginx.conf
- name: nginx-www-conf-test ### 디렉토리를 마운트
mountPath: /etc/nginx/conf.d/
readOnly: true
dnsConfig:
options:
- name: ndots
value: "1"
volumes:
- name: nginx-main-conf-test
configMap:
name: jeonyj-conf
items:
- key: nginx-conf
path: nginx.conf
- name: nginx-www-conf-test ### 디렉토리 마운트일시 configmap의 정보를 마운트 시킬 수 있다.
configMap:
name: jeonyj-conf
items:
- key: web-harulife-co-kr-conf
path: web-harulife.co.kr.conf
- key: web-harulife-kr-conf
path: web-harulife.kr.conf
deployment 설정에는 위와같이 추가해주면 된다.
(단, 여백라인을 잘 맞춰야 Deployment가 잘돌아간다)
subPath를 사용하게되면 해당 공간안에 다른 디렉토리와 공존이 가능하다.
subPath를 안붙이게되면 디렉토리를 통짜로 마운트시켜 기존에 있던 파일들이 새로운 디렉토리가 마운트되면서 안보이게된다.
'AWS > EKS' 카테고리의 다른 글
EKS 접근 제한 설정 (0) | 2023.09.15 |
---|---|
Kubectl 명령어 모음집 (0) | 2023.09.15 |
Kubernetes Node Limits,Request (0) | 2022.12.06 |