kubernetes-subpath用法(把文件挂载在已存在的目录下,不覆盖原目录)

以ngxin的配置文件为例子:

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: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeSelector:
        kubernetes.io/hostname: 192.168.5.86
      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 create -f ./nginx-deployment.yaml

查看nginx的目录的旧文件是否还在:

$ kubectl exec -it nginx-6b76cd9c54-fb2q8 -- ls /etc/nginx/
conf.d		koi-utf  mime.types  nginx.conf   uwsgi_params
fastcgi_params	koi-win  modules     scgi_params  win-utf

查看nginx.conf是否被更新了:

$ kubectl exec -it nginx-6b76cd9c54-fb2q8 -- 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;
      }
    }
} 

参考:

https://kubernetes.io/docs/concepts/storage/volumes/#using-subpath

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值