잡동사니
쿠버네티스(Kubernetes)에서 NGINX 설정 변경하기 본문
안녕하세요. yeTi입니다.
오늘은 쿠버네티스로 관리하는 NGINX의 설정을 변경하는 방법을 공유하겠습니다.
기본적인 컨셉은 ConfigMap에 설정 정보를 등록하고
ConfigMap의 정보를 volume의 파일로 저장하는 방식입니다.
/etc/nginx/nginx.conf
의 설정 변경하기
ConfigMap을 설정합니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-conf
data:
nginx-main.conf: |
user nginx;
worker_processes 2;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
볼륨을 마운트합니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx-test
template:
metadata:
labels:
app: nginx-test
spec:
containers:
- name: nginx-test
image: nginx
ports:
- containerPort: 80
volumeMounts:
- mountPath: /etc/nginx/nginx.conf # mount nginx-conf volumn to /etc/nginx/nginx.conf
readOnly: true
name: nginx-main-conf-test
subPath: nginx.conf
volumes:
- name: nginx-main-conf-test
configMap:
name: nginx-conf
items:
- key: nginx-main.conf
path: nginx.conf
위의 내용을 간략하게 설명하면 다음과 같습니다.
nginx-main-conf-test
로 볼륨을 생성한다. 이 때 ConfigMap의 정보를 맵핑합니다./etc/nginx/nginx.conf
로 볼륨을 마운트합니다. 이 때subPath
옵션을 추가하여 다른 파일들이 숨는 현상을 막아야한다. [Kubernetes] ConfigMap 참조
/etc/nginx/conf.d
에 설정 추가하기
ConfigMap을 설정합니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-conf-load-test
data:
nginx.conf: |
upstream model-server-load-test {
ip_hash;
server model-server-load-test:8000;
}
server {
location / {
proxy_pass http://model-server-load-test/;
}
listen 80;
server_name localhost;
}
볼륨을 마운트합니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-test
spec:
replicas: 1
selector:
matchLabels:
app: nginx-test
template:
metadata:
labels:
app: nginx-test
spec:
containers:
- name: nginx-test
image: nginx
ports:
- containerPort: 80
volumeMounts:
- mountPath: /etc/nginx/conf.d
readOnly: true
name: nginx-conf-test
volumes:
- name: nginx-conf-test
configMap:
name: nginx-conf
items:
- key: nginx.conf
path: nginx.conf
위의 내용을 간략하게 설명하면 다음과 같습니다.
nginx-conf-test
로 볼륨을 생성한다. 이 때 ConfigMap의 정보를 맵핑합니다./etc/nginx/conf.d
로 볼륨을 마운트합니다. 기존 파일이 없기 때문에 폴더에 마운트해도 됩니다.
'IT > Open Source' 카테고리의 다른 글
테이블명세서 생성기 (feat. Excel) (0) | 2022.06.02 |
---|---|
MQTT란, IoT용 message broker 선택하기 (0) | 2021.02.08 |
[Tomcat] 2개이상의 webapp 폴더 서비스하기 (0) | 2018.06.01 |
[Tomcat] Error listenerStart 발생시 원인 파악하기 (0) | 2016.10.13 |
[StarUML] 소프트웨어 모델링 플랫폼 소개 (0) | 2016.09.30 |
Comments