• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

kubernetes-subpath用法

开发技术 开发技术 4小时前 1次浏览

subPath最大的作用就是:把文件挂载在已存在的目录下,而不会覆盖原目录!

subPath官方地址

以一个nginx容器为例:

nginx-deployment.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-cm
data:
  nginx.conf: |
    user  nginx;
    worker_processes  4;
    worker_rlimit_nofile 48127;
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;    
    events {
        multi_accept        on;
        worker_connections  16384;
        use                 epoll;
    }    
    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;
        server {
          listen       80;
          server_name  localhost;
          location / {
              root   /usr/share/nginx/html;
              index  index.html index.htm;
          }
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   /usr/share/nginx/html;
          }
          location /nginx_status {
              #allow 127.0.0.1;
              #deny all;
              access_log off;
              stub_status on;
          }
        }
    } 
 
---
 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeSelector:
        kubernetes.io/hostname: k8s-node02
      containers:
        - name: nginx
          image: nginx:latest
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - mountPath: /etc/nginx/nginx.conf
              name: nginx-config
              subPath: etc/nginx/nginx.conf
          ports:
            - containerPort: 80
      volumes:
        - name: nginx-config
          configMap:
            name: nginx-cm
            items:
            - key: nginx.conf
              path: etc/nginx/nginx.conf

创建pod并进行验证!

$ kubectl apply -f nginx-deployment.yaml

$ kubectl exec nginx-76d77b6fb7-hrgcg -- ls /etc/nginx
conf.d
fastcgi_params
mime.types
modules
nginx.conf
scgi_params
uwsgi_params

$ kubectl exec nginx-76d77b6fb7-hrgcg -- cat /etc/nginx/nginx.conf
user  nginx;
worker_processes  4;
worker_rlimit_nofile 48127;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;    
events {
    multi_accept        on;
    worker_connections  16384;
    use                 epoll;
}    
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;
    server {
      listen       80;
      server_name  localhost;
      location / {
          root   /usr/share/nginx/html;
          index  index.html index.htm;
      }
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   /usr/share/nginx/html;
      }
      location /nginx_status {
          #allow 127.0.0.1;
          #deny all;
          access_log off;
          stub_status on;
      }
    }
} 

程序员灯塔
转载请注明原文链接:kubernetes-subpath用法
喜欢 (0)