在Kubernetes中使用镜像启动容器时,可以在Pod资源或Pod模版资源为容器配置使用env参数来定义所使用的环境变量列表,即便容器中的应用本身没定义环境变量,也一样可以向容器传递环境变量,只不过它不被使用罢了。环境变量配置容器化应用时,需要在容器配置段中嵌套使用env字段,它的值是一个由环境变量构建的列表。环境变量由name和value(或valueFrom)字段构成。

  • name<string>:环境变量的名称,必须字段。
  • value<string>:环境变量的值,通过 ${VAR_NAME} 引用,默认值为空。
  • valueFrom<Object>:环境变量值的引用源,例如,当前Pod资源的名称、名称空间、标签等,不能与非空值的value字段同时使用,即环境变量的值要么源于value字段,要么源于valueFrom字段,二者不可同时提供数据。valueFrom字段可引用的值有多种来源,包括当前Pod资源的属性值,容器相关的系统资源配置、ConfigMap对象中的Key以及Secret对象中的Key,它们应分别使用不同的嵌套字段进行定义。
  • fieldRef<Object>:当前Pod资源的指定字段,目前支持使用的字段包括 : metadata.name, metadata.namespace, metadata.uid, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs
  • configMapKeyRef<Object>:ConfigMap对象中的特定Key。
  • secretKeyRef<Object>:Secret对象中的特定Key。
  • resourceFieldRef<Object>:当前容器的特定系统资源的最小值(配额)或最大值(限额),目前支持的引用包括 limits.cpu、limts.ephemeral-storage、requests、cpu、requests.memory、requests.ephemeral-storage

valueFrom属性下面可以有

  • 1) fieldRef【fieldRef下面有fieldPath】
  • 2) configMapKeyRef
  • 3) secretKeyRef【fieldRef下面有name和key】
  • 4) resourceFieldRef【resourceFieldRef下面有resource】
作者:Jeebiz  创建时间:2024-04-02 10:31
最后编辑:Jeebiz  更新时间:2024-08-02 14:28