ConfigMap允许你将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性。接下来我们演示下如何将ConfigMap的的属性注入到Pod的环境变量中去。

  1. 添加配置文件nginx-config.yaml用于创建ConfigMap,ConfigMap名称为nginx-config,配置信息存放在data节点下:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: nginx-config
      namespace: default
    data:
      nginx-env: test
    
  2. 应用 nginx-config.yaml 文件创建ConfigMap:

    kubectl create -f nginx-config.yaml
    
  3. 获取所有ConfigMap:

    kubectl get configmap
    
  4. 通过yaml格式查看ConfigMap中的内容:

    kubectl get configmaps nginx-config -o yaml
    
  5. 添加配置文件 nginx-deployment.yaml 用于创建Deployment,部署一个Nginx服务,在Nginx的环境变量中引用ConfigMap中的属性:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
            - name: nginx
              image: nginx:1.10
              ports:
                - containerPort: 80
              env:
                - name: NGINX_ENV # 在Nginx中设置环境变量
                  valueFrom:
                    configMapKeyRef:
                      name: nginx-config # 设置ConfigMap的名称
                      key: nginx-env # 需要取值的键      
    
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐