apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
name: nginx-conf | |
data: | |
nginx.conf: | | |
user nginx; | |
worker_processes 3; | |
error_log /var/log/nginx/error.log; | |
events { | |
worker_connections 10240; | |
} | |
http { | |
log_format main | |
'remote_addr:$remote_addr\t' | |
'time_local:$time_local\t' | |
'method:$request_method\t' | |
'uri:$request_uri\t' | |
'host:$host\t' | |
'status:$status\t' | |
'bytes_sent:$body_bytes_sent\t' | |
'referer:$http_referer\t' | |
'useragent:$http_user_agent\t' | |
'forwardedfor:$http_x_forwarded_for\t' | |
'request_time:$request_time'; | |
access_log /var/log/nginx/access.log main; | |
server { | |
listen 80; | |
server_name _; | |
location / { | |
root html; | |
index index.html index.htm; | |
} | |
} | |
include /etc/nginx/virtualhost/virtualhost.conf; | |
} | |
virtualhost.conf: | | |
upstream app { | |
server localhost:8080; | |
keepalive 1024; | |
} | |
server { | |
listen 80 default_server; | |
root /usr/local/app; | |
access_log /var/log/nginx/app.access_log main; | |
error_log /var/log/nginx/app.error_log; | |
location / { | |
proxy_pass http://app/; | |
proxy_http_version 1.1; | |
} | |
} | |
--- | |
apiVersion: apps/v1beta1 | |
kind: Deployment | |
metadata: | |
name: nginx | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
app: nginx | |
spec: | |
containers: | |
- name: nginx | |
image: nginx | |
ports: | |
- containerPort: 80 | |
volumeMounts: | |
- mountPath: /etc/nginx # mount nginx-conf volumn to /etc/nginx | |
readOnly: true | |
name: nginx-conf | |
- mountPath: /var/log/nginx | |
name: log | |
volumes: | |
- name: nginx-conf | |
configMap: | |
name: nginx-conf # place ConfigMap `nginx-conf` on /etc/nginx | |
items: | |
- key: nginx.conf | |
path: nginx.conf | |
- key: virtualhost.conf | |
path: virtualhost/virtualhost.conf # dig directory | |
- name: log | |
emptyDir: {} | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: nginx | |
spec: | |
type: LoadBalancer | |
ports: | |
- port: 80 | |
targetPort: 80 | |
selector: | |
app: nginx | |
This comment has been minimized.
This comment has been minimized.
@Nj-kol its mostly the permission issue but you check the logs of your nginx pod for more informations.
|
This comment has been minimized.
This comment has been minimized.
@vacar Thanks for your reply, I was able to resolve the issue. The problem was not actually the mount, there was some config issue in nginx.conf which prevented nginx from starting up. Because by default, nginx write log under /var/log/nginx and not standard out, kubectl logs did not produce any output, hence rendering it very difficult to debug. Once I change nginx.conf to debug to standard out, things became clear |
This comment has been minimized.
This comment has been minimized.
i have some issue, all files under /etc/nginx is erased |
This comment has been minimized.
This comment has been minimized.
Only mount specific file instead of entire directory. volumeMounts:
- name: nginx-conf-volume
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
readOnly: true |
This comment has been minimized.
This comment has been minimized.
apiVersion: apps/v1beta1 deployment version should be changed to apiVersion: apps/v1 |
This comment has been minimized.
This comment has been minimized.
I need help to optimize the Nginx
Thanks |
This comment has been minimized.
Not able to mount under /etc/nginx. Pod goes into CrashLoopBackOff. Permissions issue?