Kubernetes 文档 / 概念 / 工作负载 / Pod / 用户命名空间

Kubernetes 文档 / 概念 / 工作负载 / Pod / 用户命名空间

此文档从 Kubernetes 官网摘录
中文地址
英文地址

对于容器来说,在不与 Kubernetes 过度耦合的情况下,拥有关于自身的信息有时是很有用的。 Downward API 允许容器在不使用 Kubernetes 客户端或 API 服务器的情况下获得自己或集群的信息。

在 Kubernetes 中,有两种方法可以将 Pod 和容器字段暴露给运行中的容器:

  • 作为环境变量
  • 作为 downwardAPI 卷中的文件
    这两种暴露 Pod 和容器字段的方式统称为 Downward API。

可用字段

你可以使用 fieldRef 传递来自可用的 Pod 级字段的信息。在 API 层面,一个 Pod 的 spec 总是定义了至少一个 Container。 你可以使用 resourceFieldRef 传递来自可用的 Container 级字段的信息。

可通过 fieldRef 获得的信息

对于某些 Pod 级别的字段,你可以将它们作为环境变量或使用 downwardAPI 卷提供给容器。

通过这两种机制可用的字段有:
  • metadata.name
    Pod 的名称
  • metadata.namespace
    Pod 的命名空间
  • metadata.uid
    Pod 的唯一 ID
  • metadata.annotations[‘’]
    Pod 的注解 的值(例如:metadata.annotations[‘myannotation’])
  • metadata.labels[‘’]
    Pod 的标签 的值(例如:metadata.labels[‘mylabel’])
以下信息可以通过环境变量获得,但不能作为 downwardAPI 卷 fieldRef 获得:

spec.serviceAccountName
Pod 的服务账号名称
spec.nodeName
Pod 运行时所处的节点名称
status.hostIP
Pod 所在节点的主 IP 地址
status.hostIPs
这组 IP 地址是 status.hostIP 的双协议栈版本,第一个 IP 始终与 status.hostIP 相同。
status.podIP
Pod 的主 IP 地址(通常是其 IPv4 地址)
status.podIPs
这组 IP 地址是 status.podIP 的双协议栈版本, 第一个 IP 始终与 status.podIP 相同。

以下信息可以通过 downwardAPI 卷 fieldRef 获得,但不能作为环境变量获得:

metadata.labels
Pod 的所有标签,格式为 标签键名=“转义后的标签值”,每行一个标签
metadata.annotations
Pod 的全部注解,格式为 注解键名=“转义后的注解值”,每行一个注解

可通过 resourceFieldRef 获得的信息

  • resource: limits.cpu
    容器的 CPU 限制值
  • resource: requests.cpu
    容器的 CPU 请求值
  • resource: limits.memory
    容器的内存限制值
  • resource: requests.memory
    容器的内存请求值
  • resource: limits.hugepages-*
    容器的巨页限制值
  • resource: requests.hugepages-*
    容器的巨页请求值
  • resource: limits.ephemeral-storage
    容器的临时存储的限制值
  • resource: requests.ephemeral-storage
    容器的临时存储的请求值

资源限制的后备信息

如果没有为容器指定 CPU 和内存限制时尝试使用 Downward API 暴露该信息,那么 kubelet 默认会根据 节点可分配资源 计算并暴露 CPU 和内存的最大可分配值。

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值