vashon's docs
  • Kubernetes
  • Kubernetes之etcd数据库
  • Kubernetes中pod的创建流程
  • k8s一键部署脚本
  • TKE操作笔记01
  • TKE操作笔记02
  • TKE操作笔记03
  • TKE操作笔记04
  • TKE学习笔记
  • TKE上搭建EFK日志采集系统
  • TKE上搭建prometheus
  • TKE升级node节点版本
  • TKE上部署treafik2
  • k8s之dns解析
  • TKE网络模式之vpc-cni
  • harbor搭建企业docker私有镜像仓库
  • Traefik1.7.17的部署使用
  • TKE中configMap的使用
  • TKE集群中deployment使用vpc-cni模式
  • TKE中使用lb直连获取客户端真实IP
  • TKE上搭建集群Dashboard
  • TKE中在节点上获取容器资源配置
  • TKE挂载COS桶容器目录权限如何设置
  • TKE中挂载文件到CFS子目录
  • TKE上部署metrics-server
  • TKE之初识容器探测器
  • 自制CA证书设置ssl证书
  • TKE上动态部署jenkins-slaves
  • Kubernetes之RBAC权限管理
  • Kubernetes之调度篇
  • Kubectl命令行jsonpath的使用
  • Kubernetes插件之ip-masq-agent
  • linux定位问题常用命令
  • 关于kubernetes垃圾回收那点事
  • Kubernetes在pod中配置hosts解析域名
  • Kubernetes之helm部署使用
  • kubeadm部署k8s
  • TKE使用自建NFS持久化存储
  • 二进制部署k8s
  • TKE上关于postStart和preStop使用
  • DockerFile学习
  • linux常用命令
  • k8s中通过ExternalName访问外部服务副本
  • docker常用命令
  • 搭建Docker私有仓库
  • crictl调试Kubernetes节点
  • 强制删除Terminating的ns
  • kubernetes之StatefulSet控制器
  • kubewatch监控k8s集群资源变更
  • 日志聚合工具Loki
  • 关于kubernetes证书的那点事
  • 如何阅读k8s源码
  • k8s之securityContext
  • Kubernetes之多集群的访问
  • k8s之externaltrafficpolicy保留客户端源ip
  • fluent-bit收集不同业务日志
由 GitBook 提供支持
在本页
  • 测试文件
  • nginx.conf
  • nginx-env
  • test.txt
  • 如何挂载配置文件到容器内
  • 如何引用configMap的值作为环境变量

这有帮助吗?

TKE中configMap的使用

本篇文章主要介绍了如何在tke集群中挂载configMap到pod中。

一般我们使用configMap主要用途分为2种,一种是挂载configmap中的配置文件进容器里,一种是引用configMap中的键值对作为容器的环境变量。

我们这里测试之前创建了3个测试文件,测试镜像为nginx最新镜像

测试文件

nginx.conf

在配置文件中加入了一行测试注释 #test line,方便我们后续进行验证

apiVersion: v1
data:
  nginx.conf: |2-
    user  nginx;
    worker_processes  1;
    # test line
    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;
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2020-06-02T09:19:45Z"
  name: nginx-conf
  namespace: test
  resourceVersion: "10479370942"
  selfLink: /api/v1/namespaces/test/configmaps/nginx-conf
  uid: 32ca67ac-a4b2-11ea-9c35-e28957d7d0b3

nginx-env

nginx-env用来测试环境变量的引用

apiVersion: v1
data:
  RUNTIME: nginx-test
  TZ: Asia/Shanghai
kind: ConfigMap
metadata:
  creationTimestamp: "2020-06-02T09:31:26Z"
  name: nginx-env
  namespace: test
  resourceVersion: "8584098360"
  selfLink: /api/v1/namespaces/test/configmaps/nginx-env
  uid: d4e69d1a-a4b3-11ea-9c35-e28957d7d0b3

test.txt

apiVersion: v1
data:
  test.txt: '"\tmap $http_upgrade $connection_upgrade {\n\t    default upgrade;\n\t    ''''
    close;\n\t}"'
kind: ConfigMap
metadata:
  creationTimestamp: "2020-07-13T10:33:50Z"
  name: test
  namespace: test
  resourceVersion: "10478782044"
  selfLink: /api/v1/namespaces/test/configmaps/test
  uid: 95a40fc5-7e5b-4af1-892d-b3ed3d6ebee9

如何挂载配置文件到容器内

我们一般挂载文件到容器内分为多种情况:

  • 替换容器内已经存在的某个配置文件

  • 替换容器内不存在的配置文件

  • 替换容器内的某个目录下所有文件

对应的yaml文件如下

        volumeMounts:
        - mountPath: /etc/nginx/test.txt
          name: conf
        - mountPath: /etc/nginx/nginx.conf
          name: nginx
          subPath: nginx.conf
        - mountPath: /etc/nginx/conf.d/
          name: conf
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - configMap:
          defaultMode: 420
          name: test
        name: conf
      - configMap:
          defaultMode: 420
          name: nginx-conf
        name: nginx

如何引用configMap的值作为环境变量

yaml文件如下

spec:
      containers:
      - env:
        - name: RUNTIME
          valueFrom:
            configMapKeyRef:
              key: RUNTIME
              name: nginx-env
              optional: false
        - name: TZ
          valueFrom:
            configMapKeyRef:
              key: TZ
              name: nginx-env
              optional: false
上一页Traefik1.7.17的部署使用下一页TKE集群中deployment使用vpc-cni模式

最后更新于4年前

这有帮助吗?

upload-image
upload-image