• 为容器设置环境变量


    为容器设置一个环境变量

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

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

    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"
        - name: DEMO_FAREWELL
          value: "Such a sweet sorrow"
    
    1. 基于配置清单创建一个 Pod:

      kubectl apply -f https://k8s.io/examples/pods/inject/envars.yaml
      
    1. 获取一下当前正在运行的 Pods 信息:

      kubectl get pods -l purpose=demonstrate-envars
      

      查询结果应为:

      NAME            READY     STATUS    RESTARTS   AGE
      envar-demo      1/1       Running   0          9s
      
    1. 列出 Pod 容器的环境变量:

      kubectl exec 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
      DEMO_FAREWELL=Such a sweet sorrow
      
    说明: 通过 env 或 envFrom 字段设置的环境变量将覆盖容器镜像中指定的所有环境变量。
    说明: 环境变量可以互相引用,但是顺序很重要。 使用在相同上下文中定义的其他变量的变量必须在列表的后面。 同样,请避免使用循环引用。

    在配置中使用环境变量

    您在 Pod 的配置中定义的环境变量可以在配置的其他地方使用, 例如可用在为 Pod 的容器设置的命令和参数中。 在下面的示例配置中,环境变量 GREETING ,HONORIFIC 和 NAME 分别设置为 Warm greetings to , The Most Honorable 和 Kubernetes。然后这些环境变量在传递给容器 env-print-demo 的 CLI 参数中使用。

    apiVersion: v1
    kind: Pod
    metadata:
      name: print-greeting
    spec:
      containers:
      - name: env-print-demo
        image: bash
        env:
        - name: GREETING
          value: "Warm greetings to"
        - name: HONORIFIC
          value: "The Most Honorable"
        - name: NAME
          value: "Kubernetes"
        command: ["echo"]
        args: ["$(GREETING) $(HONORIFIC) $(NAME)"]
    

    创建后,命令 echo Warm greetings to The Most Honorable Kubernetes 将在容器中运行。

    作者:tigergao
    功不唐捐 玉汝于成
  • 相关阅读:
    【WCF】服务并发中的“可重入模式”
    【.net 深呼吸】项目中是否有必要删去多余的引用
    【.net 深呼吸】细说CodeDom(10):生成异常处理语句
    【.net 深呼吸】细说CodeDom(9):动态编译
    【.net 深呼吸】细说CodeDom(8):分支与循环
    shell脚本将gbk文件转化为utf-8
    PHP判断文件大小是MB、GB、TB...
    svn: E205007: None of the environment variables SVN_EDITOR
    phpstorm yii2框架的redis和mongodb提示
    linux下phpmailer发送邮件出现SMTP ERROR: Failed to connect to server: (0)错误
  • 原文地址:https://www.cnblogs.com/tigergaonotes/p/15711831.html
Copyright © 2020-2023  润新知