前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在容器内获取 Pod 信息

在容器内获取 Pod 信息

作者头像
看、未来
发布2022-09-27 21:36:02
7800
发布2022-09-27 21:36:02
举报

文章目录

可供使用的 Pod 信息

1)可供 feildRef 设置的元数据如下:

代码语言:javascript
复制
metadate.name					# Pod 名称
metadate.namespace				# Pod 所在的命名空间
metadate.uid					# Pod 的 UID
metadate.labels					# Pod 的 label
metadate.labels['key']			# Pod 的某个 Label
metadate.annotations			# Pod 的 annotation
metadate.annotations['key']		# Pod 的某个 annotation

2)可以通过 resourceFieldRef 设置的数据如下:

代码语言:javascript
复制
Container 级别的 CPU Limit
Container 级别的 CPU Request
Container 级别的 Memory Limit
Container 级别的 Memory Request
Container 级别的 临时存储空间 Limit
Container 级别的 临时存储空间 Request

3)可供 feildRef 设置的其他数据如下:

代码语言:javascript
复制
status.podIP
spec.serviceAccountName	# Pod 使用的 ServiceAccount 名称
spec.nodeName			# Pod 所在的 Node 的名称
status.hostIP			# Pod 所在的 Node 的 IP 地址

环境变量方式

将 pod 信息设置为容器内的环境变量

代码语言:javascript
复制
apiVersion: v1
kind: pod
metadate:
  name: depi-envvars-fieldref
spec:
  containers:
  - name: test-container
    image: busybox
    command: [ "sh", "-c" ]
    args:
    - while true; do
	    echo -en '\n';
	    printenv MY_NODE_NAME MY_POD_NAME MY_POD_IP;
	    sleep 10;
	  done;
	env:
	  - name: MY_NODE_NAME
	    valueFrom:
	      fieldRef:
	        fieldPath: spec.nodeName
	  - name: MY_POD_NAME
	    valueFrom:
	      fieldRef:
	        fieldPath: metadate.name
	  - name: MY_POD_IP
	    valueFrom:
	      feildRef:
	        fieldPath: status.podIP
	restartPolicy: Never

注意:env 不直接设置 value,而是使用 valueFrom 对 Pod 的元数据进行引用


将 Container 信息设置为容器内环境变量

代码语言:javascript
复制
apiVersion: v1
kind: pod
metadate:
  name: depi-envvars-resourcefieldref
spec:
  containers:
  - name: test-container
    image: busybox
    command: [ "sh", "-c" ]
    args:
    - while true; do
	    echo -en '\n';
	    printenv MY_CPU_REQUEST MY_MEMORY_LIMIT;
	    sleep 10;
	  done;
	resources:
	  requests:
	    memory: "1Gi"
	    cpu: "250m"
	  limits:
	    memory: "2Gi"
	    cpu: "500mi"
	env:
	  - name: MY_CPU_REQUEST 
	    valueFrom:
	      resourceFieldRef:
	        containerName: test-container
	        resource: requests.cpu
	  - name: MY_MEMORY_LIMIT
	    valueFrom:
	      resourceFieldRef:
	        containerName: test-container
	        resource: limits.memory
	restartPolicy: Never

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 可供使用的 Pod 信息
  • 环境变量方式
    • 将 pod 信息设置为容器内的环境变量
      • 将 Container 信息设置为容器内环境变量
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档