网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 其他技术区 > Kubernetes >

K8s新手系列之为Pod容器设置环境变量

时间:2025-05-05 15:26

人气:

作者:admin

标签:

导读:概述 官网:https://kubernetes.io/zh-cn/docs/tasks/inject-data-application/define-environment-variable-container/ 创建 Pod 时,可以为其下的容器设置环境变量。通过配置文件的 env 或者 env...

概述

官网:https://kubernetes.io/zh-cn/docs/tasks/inject-data-application/define-environment-variable-container/

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

  • env:为每一个变量指定一个值,类似key=value的形式
  • envFrom:通过引用 ConfigMap 或 Secret 来设置容器的环境变量。 使用 envFrom 时,引用的 ConfigMap 或 Secret 中的所有键值对都被设置为容器的环境变量

env设置环境变量

简单设置方式

示例:

apiVersion: v1
kind: Pod
metadata:
  name: env-configmap-pod
spec:
  containers:
    - name: app
      # 打印环境变量
      command: ["/bin/sh", "-c", "printenv"]
      image: busybox:latest
      # 设置环境变量
      env:
      - name: USERNAME
        value: root
      - name: PASSWORD
        value: huangsir

通过ConfigMap设置环境变量

学习ConfigMap查看这篇文章:K8s新手系列之ConfigMap资源

创建ConfigMap

kind: ConfigMap
metadata:
  name: special-config
data:
  USER_NAME: huangsir
  APP: haha
  COLOR: red

创建Pod引用ConfigMap

apiVersion: v1
kind: Pod
metadata:
  name: env-configmap-pod
spec:
  containers:
    - name: app
      # 打印环境变量
      command: ["/bin/sh", "-c", "printenv"]
      image: busybox:latest
      # 设置环境变量
      env:
      - name: USERNAME
        # 指定value值从哪里来
        valueFrom:
          # 指定值从configMap引用
          configMapKeyRef:
            # configMap的名称
            name: special-config
            # configMap中Data的Key
            key: USER_NAME

通过Secret设置环境变量

学习Secret请查看这篇文章:K8s新手系列之Secret资源

创建secret

apiVersion: v1
kind: Secret
metadata:
  name: db-secret
data:
  # base64编码后的,源内容为root
  username: cm9vdAo=
  password: cm9vdAo=
type: Opaque

创建Pod引用Secret

apiVersion: v1
kind: Pod
metadata:
  name: env-configmap-pod
spec:
  containers:
    - name: app
      # 打印环境变量
      command: ["/bin/sh", "-c", "printenv"]
      image: busybox:latest
      # 设置环境变量
      env:
      - name: USERNAME
        # 指定value值从哪里来
        valueFrom:
          # 指定值从Secret引用
          secretKeyRef:
            # Secret的名称
            name: db-secret
            # Secret中Data的Key
            key: username

envFrom设置环境变量

引用ConfigMap

envFrom会将ConfigMap中所有的键值对都设置为环境变量

apiVersion: v1
kind: Pod
metadata:
  name: env-configmap-pod
spec:
  containers:
    - name: app
      # 打印环境变量
      command: ["/bin/sh", "-c", "printenv"]
      image: busybox:latest
      # 设置环境变量
      envFrom:
        configMapRef:
          # 设置configMap的名称
          name: special-config

引用Secret

envFrom会将Secret中所有的键值对都设置为环境变量

apiVersion: v1
kind: Pod
metadata:
  name: env-configmap-pod
spec:
  containers:
    - name: app
      # 打印环境变量
      command: ["/bin/sh", "-c", "printenv"]
      image: busybox:latest
      # 设置环境变量
      envFrom:
        secretRef:
          # 设置Secret的名称
          name: db-Secret

在配置中使用环境变量

在资源文件中配置的环境变量可以在文件中的其他地方使用,例如可用在为 Pod 的容器设置的命令和参数中。

使用$(env-name)来引用设置的环境变量

示例:

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)"]

本文来自博客园,作者:huangSir-devops,转载请注明原文链接:https://www.cnblogs.com/huangSir-devops/p/18859107,微信Vac6666666,欢迎交流

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信