在容器内获取元数据

容器实例 BCI

  • 产品定价
  • 功能发布记录
  • 操作指南(旧)
    • 创建容器组
  • 产品描述
    • 产品特性
    • 使用限制
    • 核心概念
    • 什么是BCI?
  • BCI服务等级协议SLA
    • BCI服务等级协议SLA
  • API参考
    • 通用说明
    • 附录
    • 服务域名
    • 公共请求头与响应头
    • 错误码
    • 概述
    • 实例相关接口
      • 批量删除实例
      • 查询实例列表
      • 创建实例
      • 删除实例
      • 查询实例详情
    • 镜像缓存相关接口
      • 创建镜像缓存
      • 查询镜像缓存列表
      • 批量删除镜像缓存
  • 操作指南
    • 通过BCI控制台和API使用BCI
      • 多用户访问控制
      • 运维
        • 使用coredump分析实例程序异常
      • 网络
        • 连接公网
      • 监控
        • 查看实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
          • 管理镜像缓存
          • 镜像缓存概述
      • 存储
        • 挂载CFS数据卷
        • 挂载EmptyDir数据卷
        • 挂载ConfigMap数据卷
      • 容器配置
        • 设置容器启动命令和参数
      • 通过控制台使用BCI
        • 连接BCI实例
        • 删除BCI实例
        • 创建BCI实例
        • 查看BCI实例的详情和事件
      • BCI Pod
        • BCI Pod生命周期
        • BCI Pod概述
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过CCE使用BCI
      • 运维
        • 使用coredump分析实例程序异常
        • 常见问题
      • 网络
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 通过Service访问BCI服务
        • 配置BCI Pod访问集群内Service
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
      • 存储
        • 挂载容器标准输出日志
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载BOS数据卷
        • 挂载PFS并行文件存储
      • 对接BCI
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义Condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 日志
        • BLS日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 配置bci-profile
        • 多可用区创建实例
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过自建集群使用BCI
      • 运维
        • 使用coredump分析实例程序异常
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 存储管理
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载PFS并行文件存储
      • 镜像管理
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 使用镜像缓存
          • 查询镜像缓存
          • 镜像缓存概述
      • 对接BCI
        • 自建Kubernetes集群对接VNode
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 网络管理
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 配置BCI Pod访问集群内Service
      • 预留实例券
        • 购买预留实例券
        • 预留实例券与实例的匹配
        • 查看预留实例券使用明细
        • 查看可抵扣的实例
        • 预留实例券概述
      • 日志
        • 采集日志到百度云BLS
        • bls日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 多可用区创建实例
  • SDK
    • Java-SDK
      • 异常处理
      • 版本变更记录
      • 初始化
      • 安装SDK工具包
      • 概述
      • 实例相关
        • 批量删除实例
        • 查询实例列表
        • 创建实例
        • 删除实例
        • 查询实例详情
    • Go-SDK
      • 异常处理
      • BCI实例
      • 初始化
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

容器实例 BCI

  • 产品定价
  • 功能发布记录
  • 操作指南(旧)
    • 创建容器组
  • 产品描述
    • 产品特性
    • 使用限制
    • 核心概念
    • 什么是BCI?
  • BCI服务等级协议SLA
    • BCI服务等级协议SLA
  • API参考
    • 通用说明
    • 附录
    • 服务域名
    • 公共请求头与响应头
    • 错误码
    • 概述
    • 实例相关接口
      • 批量删除实例
      • 查询实例列表
      • 创建实例
      • 删除实例
      • 查询实例详情
    • 镜像缓存相关接口
      • 创建镜像缓存
      • 查询镜像缓存列表
      • 批量删除镜像缓存
  • 操作指南
    • 通过BCI控制台和API使用BCI
      • 多用户访问控制
      • 运维
        • 使用coredump分析实例程序异常
      • 网络
        • 连接公网
      • 监控
        • 查看实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
          • 管理镜像缓存
          • 镜像缓存概述
      • 存储
        • 挂载CFS数据卷
        • 挂载EmptyDir数据卷
        • 挂载ConfigMap数据卷
      • 容器配置
        • 设置容器启动命令和参数
      • 通过控制台使用BCI
        • 连接BCI实例
        • 删除BCI实例
        • 创建BCI实例
        • 查看BCI实例的详情和事件
      • BCI Pod
        • BCI Pod生命周期
        • BCI Pod概述
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过CCE使用BCI
      • 运维
        • 使用coredump分析实例程序异常
        • 常见问题
      • 网络
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 通过Service访问BCI服务
        • 配置BCI Pod访问集群内Service
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
      • 存储
        • 挂载容器标准输出日志
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载BOS数据卷
        • 挂载PFS并行文件存储
      • 对接BCI
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义Condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 日志
        • BLS日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 配置bci-profile
        • 多可用区创建实例
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过自建集群使用BCI
      • 运维
        • 使用coredump分析实例程序异常
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 存储管理
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载PFS并行文件存储
      • 镜像管理
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 使用镜像缓存
          • 查询镜像缓存
          • 镜像缓存概述
      • 对接BCI
        • 自建Kubernetes集群对接VNode
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 网络管理
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 配置BCI Pod访问集群内Service
      • 预留实例券
        • 购买预留实例券
        • 预留实例券与实例的匹配
        • 查看预留实例券使用明细
        • 查看可抵扣的实例
        • 预留实例券概述
      • 日志
        • 采集日志到百度云BLS
        • bls日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 多可用区创建实例
  • SDK
    • Java-SDK
      • 异常处理
      • 版本变更记录
      • 初始化
      • 安装SDK工具包
      • 概述
      • 实例相关
        • 批量删除实例
        • 查询实例列表
        • 创建实例
        • 删除实例
        • 查询实例详情
    • Go-SDK
      • 异常处理
      • BCI实例
      • 初始化
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 容器实例BCI
  • arrow
  • 操作指南
  • arrow
  • 通过CCE使用BCI
  • arrow
  • 容器配置
  • arrow
  • 在容器内获取元数据
本页目录
  • 在容器内获取元数据
  • 通过 Downward API 访问元数据

在容器内获取元数据

更新时间:2025-08-20

在容器内获取元数据

当前仅支持在CCE集群中获取元数据

通过 Downward API 访问元数据

Kubernetes Downward API提供了以下两种方式:

  • 环境变量(Environment Variables)用于单个变量,可以将Pod信息直接注入容器内部。
  • Volume挂载(Volume Files)可以将Pod信息生成为文件,直接挂载到容器内部。 目前BCI已经支持了Downward API的大部分常用字段,下文将为您介绍使用方式。

1. 环境变量方式

您可以通过Downward API将Pod的名称、命名空间、IP等信息注入到容器的环境变量中。通过环境变量可以获得的值如下表所示。

参数 描述
metadata.name Pod名称
metadata.namespace Pod命名空间
metadata.uid Pod的UID
metadata.labels[''] Pod的标签值
metadata.annotations[''] Pod的注解值
spec.serviceAccountName Pod服务账号名称
spec.nodeName 节点名称
status.podIP 节点IP
limits.cpu 容器的 CPU 限制值
requests.cpu 容器的 CPU 请求值
limits.memory 容器的内存限制值
requests.memory 容器的内存请求值

注意:

暂不支持的字段如下:

  • status.hostIP
  • resource: limits.ephemeral-storage
  • resource: requests.ephemeral-storage

配置示例:

Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  annotations:
5    myannotation: "myannotation"
6  labels:
7    app: bci-test-vk
8    mylabel: "mylabel"
9  name: env-test
10  namespace: default
11spec:
12  enableServiceLinks: false
13  nodeSelector:
14    type: virtual-kubelet
15  tolerations:
16    - effect: NoSchedule
17      key: virtual-kubelet.io/provider
18      operator: Equal
19      value: baidu
20    - effect: NoExecute
21      key: node.kubernetes.io/not-ready
22      operator: Exists
23      tolerationSeconds: 300
24    - effect: NoExecute
25      key: node.kubernetes.io/unreachable
26      operator: Exists
27      tolerationSeconds: 300
28  containers:
29  - image: hub.baidubce.com/cce/nginx-alpine-go
30    imagePullPolicy: IfNotPresent
31    name: c01
32    workingDir: /work
33    ports:
34    - containerPort: 8080
35      protocol: TCP
36    resources:
37      limits:
38        cpu: 250m
39        memory: 512Mi
40      requests:
41        cpu: 250m
42        memory: 512Mi
43    env:
44      - name: MY_POD_IP
45        valueFrom:
46          fieldRef:
47            fieldPath: status.podIP
48      - name: MY_ENV
49        value: "test"
50      - name: METADATA_NAME
51        valueFrom:
52          fieldRef:
53            fieldPath: metadata.name
54      - name: METADATA_NAMESPACE
55        valueFrom:
56          fieldRef:
57            fieldPath: metadata.namespace
58      - name: METADATA_UID
59        valueFrom:
60          fieldRef:
61            fieldPath: metadata.uid
62      - name: METADATA_LABELS
63        valueFrom:
64          fieldRef:
65            fieldPath: metadata.labels['mylabel']
66      - name: METADATA_ANNOTATIONS_REGION
67        valueFrom:
68          fieldRef:
69            fieldPath: metadata.annotations['myannotation']
70      - name: MY_CPU_LIMIT
71        valueFrom:
72          resourceFieldRef:
73            containerName: c01
74            resource: limits.cpu
75      - name: MY_CPU_REQUEST
76        valueFrom:
77          resourceFieldRef:
78            containerName: c01
79            resource: requests.cpu
80      - name: MY_MEM_LIMIT
81        valueFrom:
82          resourceFieldRef:
83            containerName: c01
84            resource: limits.memory
85      - name: MY_MEM_REQUEST
86        valueFrom:
87          resourceFieldRef:
88            containerName: c01
89            resource: requests.memory

2. Volume挂载方式

您可以通过Downward API将Pod的Label、Annotation等信息通过Volume挂载到容器的某个文件中。通过Volume挂载可以获得的值如下表所示。

参数 描述
metadata.name Pod名称
metadata.namespace Pod命名空间
metadata.uid Pod的UID
metadata.labels[''] Pod的标签值
metadata.annotations[''] Pod的注解值
metadata.labels Pod的所有标签
metadata.annotations Pod的所有注解
limits.cpu 容器的 CPU 限制值
requests.cpu 容器的 CPU 请求值
limits.memory 容器的内存限制值
requests.memory 容器的内存请求值

配置示例:

Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  annotations:
5    myannotation: "myannotation"
6  labels:
7    app: bci-test-vk
8    mylabel: "mylabel"
9  name: volume-test
10  namespace: default
11spec:
12  nodeSelector:
13    type: virtual-kubelet
14  tolerations:
15    - effect: NoSchedule
16      key: virtual-kubelet.io/provider
17      operator: Equal
18      value: baidu
19    - effect: NoExecute
20      key: node.kubernetes.io/not-ready
21      operator: Exists
22      tolerationSeconds: 300
23    - effect: NoExecute
24      key: node.kubernetes.io/unreachable
25      operator: Exists
26      tolerationSeconds: 300
27  containers:
28  - image: hub.baidubce.com/cce/nginx-alpine-go
29    imagePullPolicy: IfNotPresent
30    name: c01
31    workingDir: /work
32    ports:
33    - containerPort: 8080
34      protocol: TCP
35    resources:
36      limits:
37        cpu: 250m
38        memory: 512Mi
39      requests:
40        cpu: 250m
41        memory: 512Mi
42    volumeMounts:
43      - name: podinfo
44        mountPath: /etc/podinfo
45  volumes:
46  - name: podinfo
47    downwardAPI:
48      items:
49        - path: "metadata.name"
50          fieldRef:
51            fieldPath: metadata.name
52        - path: "metadata.namespace"
53          fieldRef:
54            fieldPath: metadata.namespace
55        - path: "metadata.uid"
56          fieldRef:
57            fieldPath: metadata.uid
58        - path: "mylabel"
59          fieldRef:
60            fieldPath: metadata.labels['mylabel']
61        - path: "myannotation"
62          fieldRef:
63            fieldPath: metadata.annotations['myannotation']
64        - path: "labels"
65          fieldRef:
66            fieldPath: metadata.labels
67        - path: "annotations"
68          fieldRef:
69            fieldPath: metadata.annotations
70        - path: "workload_cpu_limit"
71          resourceFieldRef:
72            containerName: c01
73            resource: limits.cpu
74            divisor: 1m
75        - path: "workload_cpu_request"
76          resourceFieldRef:
77            containerName: c01
78            resource: requests.cpu
79            divisor: 1m
80        - path: "workload_mem_limit"
81          resourceFieldRef:
82            containerName: c01
83            resource: limits.memory
84            divisor: 1Mi
85        - path: "workload_mem_request"
86          resourceFieldRef:
87            containerName: c01
88            resource: requests.memory
89            divisor: 1Mi

上一篇
容器生命周期回调
下一篇
配置NTP服务