云容器实例 CCI
云容器实例 CCI
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 使用前必读
- 如何调用API
- 快速入门
- API
-
Kubernetes API
- ConfigMap
- Pod
- StorageClass
- Service
- Deployment
- Ingress
- OpenAPIv2
- VolcanoJob
- Namespace
- ClusterRole
- Secret
- Endpoint
- ResourceQuota
- CronJob
-
API groups
- 查询APIVersions
- 查询所有v1版本的API
- 查询APIGroupList
- 查询APIGroup /apis/apps
- 查询所有apps/v1的API
- 查询APIGroup /apis/batch
- 查询APIGroup /apis/batch.volcano.sh
- 查询所有batch.volcano.sh/v1alpha1的API
- 查询所有batch/v1的API
- 查询所有batch/v1beta1的API
- 查询APIGroup /apis/crd.yangtse.cni
- 查询所有crd.yangtse.cni/v1的API
- 查询APIGroup /apis/extensions
- 查询所有extensions/v1beta1的API
- 查询APIGroup /apis/metrics.k8s.io
- 查询所有metrics.k8s.io/v1beta1的API
- 查询APIGroup /apis/networking.cci.io
- 查询所有networking.cci.io/v1beta1的API
- 查询APIGroup /apis/rbac.authorization.k8s.io
- 查询所有rbac.authorization.k8s.io/v1的API
- Event
- PersistentVolumeClaim
- RoleBinding
- StatefulSet
- Job
- ReplicaSet
- 数据结构
- 权限和授权项
- 附录
- 历史API
- 修订记录
- 常见问题
- SDK参考
- 视频帮助
- 通用参考
本文导读
展开导读
链接复制成功!
在容器中通过环境变量获取Pod基础信息
客户如果需要在容器内获取POD的基础信息,可以通过kubernetes中的Downward API注入环境变量的方式实现。本操作实践展示如何在Deployment和POD的定义中增加环境变量配置,获取Pod的namespace、name、uid、IP、Region和AZ。
CCI创建Pod并分配节点的同时,Pod Annotations中新增所在节点的region和az信息。
此时Pod中Annotations格式为:
apiVersion: v1 kind: Pod metadata: annotations: topology.kubernetes.io/region: "{{region}}" topology.kubernetes.io/zone: "{{available-zone}}"
topology.kubernetes.io/region为所在节点的region信息。
topology.kubernetes.io/zone为所在节点的az信息。
Deployment配置示例
通过环境变量获取Pod基础信息,示例如下:
kind: Deployment apiVersion: apps/v1 metadata: name: cci-downwardapi-test namespace: cci-test # 填写具体的命名空间 spec: replicas: 2 selector: matchLabels: app: cci-downwardapi-test template: metadata: labels: app: cci-downwardapi-test spec: containers: - name: container-0 image: 'library/euleros:latest' command: - /bin/bash - '-c' - while true; do echo hello; sleep 10; done env: - name: MY_POD_UID valueFrom: fieldRef: fieldPath: metadata.uid - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: MY_POD_IP valueFrom: fieldRef: fieldPath: status.podIP - name: REGION valueFrom: fieldRef: fieldPath: metadata.annotations['topology.kubernetes.io/region'] - name: ZONE valueFrom: fieldRef: fieldPath: metadata.annotations['topology.kubernetes.io/zone'] resources: limits: cpu: 500m memory: 1Gi requests: cpu: 500m memory: 1Gi
负载运行起来后就可以通过环境变量在容器内查看到具体的Pod信息:
图1 Pod基础信息

父主题: 负载管理