Home
Cron Job
DNS Pod 与 Service
DaemonSet
Deployments
Docker 用户使用 kubectl 命令指南
Init 容器
JSONPath 支持
Kubernetes 中的代理
Kubernetes 组件
Kubernetes集群中使用Sysctls
Managing Compute Resources for Containers
Master 节点通信
Nodes
Pod Preset
Pod 安全策略
Pod 的生命周期
Secret
Service
kubectl概述
为容器设置启动时要执行的命令及其入参
为容器设置环境变量
云供应商
使用 Calico 来提供 NetworkPolicy
使用 HostAliases 向 Pod /etc/hosts 文件添加条目
使用 PodPreset 将信息注入 Pods
使用 Romana 来提供 NetworkPolicy
使用 Secret 安全地分发凭证
使用 Service 把前端连接到后端
使用 Weave 网络来提供 NetworkPolicy
使用Deployment运行一个无状态应用
关键插件 Pod 的调度保证
同 Pod 内的容器使用共享卷通信
在 Kubernetes 中配置私有 DNS 和上游域名服务器
垃圾收集
基于Replication Controller执行滚动升级
声明网络策略
安装扩展(Addons)
容器环境变量
对 DaemonSet 执行回滚
应用故障排查
应用资源配额和限额
应用连接到 Service
弹缩StatefulSet
控制节点上的CPU管理策略
改变默认 StorageClass
更改 PersistentVolume 的回收策略
概念模板示例
理解 Kubernetes 对象
知名标签(Label)、注解(Annotation)和 Taints
管理巨页(HugePages)
给容器分配非透明整型资源
网络策略
联邦
认识 Kubernetes?
认识 Kubernetes?
设备插件
设置 Pod CPU 和内存限制
访问集群上运行的服务
证书
证书轮换
调度 GPU
调试Pods和Replication Controllers
调试StatefulSet
资源配额
运行一个单实例有状态应用
通过文件将Pod信息呈现给容器
通过环境变量将Pod信息呈现给容器
通过配置文件设置 Kubelet 参数
配置你的云平台防火墙
配置命名空间下pod总数
配置对多集群的访问
镜像
集群故障排查
集群管理
集群管理概述
静态Pods

Edit This Page

为容器设置环境变量

本页将展示如何为kubernetes Pod下的容器设置环境变量。

Before you begin

You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. If you do not already have a cluster, you can create one by using Minikube, or you can use one of these Kubernetes playgrounds:

To check the version, enter kubectl version.

为容器设置一个环境变量

创建Pod时,可以为其下的容器设置环境变量。通过配置文件的env或者envFrom 字段来设置环境变量。

本示例中,将创建一个只包含单个容器的Pod。Pod的配置文件中设置环境变量的名称为DEMO_GREETING, 其值为"Hello from the environment"。下面是Pod的配置文件内容:

envars.yaml docs/tasks/inject-data-application
apiVersion: v1
kind: Pod
metadata:
  name: envar-demo
  labels:
    purpose: demonstrate-envars
spec:
  containers:
  - name: envar-demo-container
    image: gcr.io/google-samples/node-hello:1.0
    env:
    - name: DEMO_GREETING
      value: "Hello from the environment"
  1. 基于YAML文件创建一个Pod:

    kubectl create -f https://k8s.io/docs/tasks/inject-data-application/envars.yaml

  2. 获取一下当前正在运行的Pods信息:

    kubectl get pods -l purpose=demonstrate-envars

    查询结果应为:

    NAME            READY     STATUS    RESTARTS   AGE
    envar-demo      1/1       Running   0          9s
    
  3. 进入该Pod下的容器并打开一个命令终端:

    kubectl exec -it envar-demo – /bin/bash

  4. 在命令终端中通过执行printenv打印出环境变量。

    root@envar-demo:/# printenv

    打印结果应为:

    NODE_VERSION=4.4.2
    EXAMPLE_SERVICE_PORT_8080_TCP_ADDR=10.3.245.237
    HOSTNAME=envar-demo
    ...
    DEMO_GREETING=Hello from the environment
    
  5. 通过键入exit退出命令终端。

What's next