• kubernetes-subpath用法


    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;
          }
        }
    } 
    
    *************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************
  • 相关阅读:
    TVM性能评估分析(七)
    TVM性能评估分析(六)
    理论三:里式替换(LSP)跟多态有何区别?哪些代码违背了LSP?
    理论二:如何做到“对扩展开放、修改关闭”?扩展和修改各指什么?
    (转)浅谈 SOLID 原则的具体使用
    老一辈的革命先烈告诉我,凡事打好提前量
    理论一:对于单一职责原则,如何判定某个类的职责是否够“单一”?
    实战二(下):如何利用面向对象设计和编程开发接口鉴权功能?
    实战二(上):如何对接口鉴权这样一个功能开发做面向对象分析?
    12 | 实战一(下):如何利用基于充血模型的DDD开发一个虚拟钱包系统?
  • 原文地址:https://www.cnblogs.com/lvzhenjiang/p/15045248.html
Copyright © 2020-2023  润新知