kubernetes - kubernetes - 将容器信息公开为环境变量
问题描述
我试图将一些容器信息公开为 env 变量,从 pod 的 spec.template.spec.containers[0].name 读取值,这似乎不起作用。在部署模板中引用容器字段的 apiSpec 是什么。部署模板如下:
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
run: nginx
name: nginx
spec:
replicas: 2
selector:
matchLabels:
run: nginx
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
run: nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 8000
resources: {}
env:
- name: MY_CONTAINER_NAME
valueFrom:
fieldRef:
fieldPath: spec.template.spec.containers[0].name
解决方案
Downward API 使您能够将 pod 自己的元数据公开给在该 pod 内运行的进程。
目前,它允许您将以下信息传递给您的容器:
- 豆荚的名称
- Pod 的 IP 地址
- pod 所属的命名空间
- 运行 pod 的节点的名称
- pod 正在运行的服务帐户的名称
- 每个容器的 CPU 和内存请求
- 每个容器的 CPU 和内存限制
- 豆荚的标签
- Pod 的注解
就是这样。如您所见,容器端口不在此列表中。
通常,通过 Downward API 可用的元数据相当有限。如果您需要更多,您需要直接从 Kubernetes API 服务器获取它,您可以使用客户端库或使用大使容器来完成。
推荐阅读
- javascript - 使用 swig 创建 C++ 到 javascript 的包装器时生成错误
- asp.net-core - AspNet Core 定位导航属性
- sql-server - 同一台机器上的 SQL Server 2016 Express 版和开发者版
- symfony - Monolog vs worker vs supervisord
- r - 如何在每行的字符串之前和之后添加一个空格
- swift - Swift:条形图内容未水平居中
- php - 我如何通过在 php OOP 中使用 foreach 循环动态获取 jquery 选项卡的选项卡 ID
- python - 有没有办法在循环中处理具有相似名称(数字差异)的字典中的文件?
- pandas - 使用 np.select 来自另一列的数据
- python-3.x - 如何从用户窗口隐藏 Hangout-chat-bot 未响应消息?