kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
root@test-volume-pod:/# cat /etc/podinfo/labels
k8s-app="test-volume"
node-env="test"root
复制代码
在实际应用中,如果你的应用有获取 POD 的根本信息的需求,就可以利用Downward API来获取根本信息,然后编写一个启动脚本或者利用initContainer将 POD 的信息注入到容器中去,然后在自己的应用中就可以正常的处理相干逻辑了。
现在 Downward API 支持的字段(常用部分):
1. 使用 fieldRef 可以声明使用:
spec.nodeName - 宿主机名字
status.hostIP - 宿主机 IP
metadata.name - Pod 的名字
metadata.namespace - Pod 的 Namespace
status.podIP - Pod 的 IP
spec.serviceAccountName - Pod 的 Service Account 的名字
Secret、ConfigMap,以及 Downward API 这三种 Projected Volume 定义的信息,大多还可以通过环境变量的方式出现在容器里。但是,通过环境变量获取这些信息的方式,不具备主动更新的本事。一样寻常环境下,发起利用 Volume 文件的方式获取这些信息(根据资源对象用途判断)。
4.4、ServiceAccount
ServiceAccount是一种 Kubernetes 资源,用于提供身份给 Pod。ServiceAccount 允许 Pod 访问 Kubernetes API 服务器,通常是为了举行 API 操纵或与 Kubernetes 集群交互。ServiceAccount 通常与角色(Role)和角色绑定(RoleBinding)结合利用,以控制 Pod 访问 Kubernetes API 的权限。 利用场景: