• 为容器设置环境变量


    为容器设置一个环境变量

    创建 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
    功不唐捐 玉汝于成
  • 相关阅读:
    MyBatis学习总结(一)——MyBatis快速入门
    Maven学习总结(五)——聚合与继承
    Maven学习总结(四)——Maven核心概念
    Maven学习总结(三)——使用Maven构建项目
    Maven学习总结(二)——Maven项目构建过程练习
    python登陆github
    反爬虫
    urllib url解析学习
    python3使用urllib获取set-cookies
    python数据存储技巧
  • 原文地址:https://www.cnblogs.com/tigergaonotes/p/15711831.html
Copyright © 2020-2023  润新知