Docker 与 K8S学习笔记(二十)—— 使用Downward API向容器注入Pod信息

本文介绍了如何使用Kubernetes的Downward API将Pod信息,如名称、IP、标签和注解,以环境变量或Volume挂载的方式注入到容器中。通过示例展示了 Busybox 容器如何接收并展示这些信息,强调了Downward API在日志分析和应用配置中的作用。
摘要由CSDN通过智能技术生成

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475
Kubernetes在创建Pod时,会为Pod和容器设置一些额外的信息,比如Pod名称、Pod IP、Node IP、Label、Annotation、资源限制等,我们经常会在应用程序中使用到这些数据,比如利用Pod名称作为应用日志的字段,方便分析日志。为了能在容器内获取这些信息,我们可以使用Downward API机制来实现。

Downward API可以通过环境变量Volume挂载这两种方式将Pod信息注入容器,我们分别来看一下:

一、环境变量方式

我们还是以Busybox为例进行演示,我们将Pod信息和Container信息以环境变量方式注入容器,在容器启动后通过env命令打印出来,我们Yaml文件内容如下:

apiVersion: v1
kind: Pod
metadata:
 name: busybox-pod
spec:
 containers:
 - name: busybox
 image: busybox
 command: ["/bin/sh", "-c", "env | grep VAR\_"]
 resources:
 requests:
 memory: "16Mi"
 cpu: "125m"
 limits:
 memory: "32Mi"
 cpu: "250m"
    env:
 - name: VAR\_NODE\_NAME
 valueFrom:
 fieldRef:
 fieldPath: spec.nodeName
 - name: VAR\_POD\_NAME
 valueFrom:
 fieldRef:
 fieldPath: metadata.name
 - name: VAR\_POD\_NAMESPACE
 valueFrom:
 fieldRef:
 fieldPath: metadata.namespace
 - name: VAR\_POD\_IP
 valueFrom:
 fieldRef:
 fieldPath: status.podIP
 - name: VAR\_SERVICE\_ACCOUNT
 valueFrom:
 fieldRef:
 fieldPath: spec.serviceAccountName
 - name: VAR\_CPU\_REQUEST
 valueFrom:
 resourceFieldRef:
 containerName: busybox
 resource: requests.cpu
 - name: VAR\_CPU\_LIMIT
 valueFrom:
 resourceFieldRef:
 containerName: busybox
 resource: limits.cpu
 - name: VAR\_MEM\_REQUEST
 valueFrom:
 resourceFieldRef:
 containerName: busybox
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值