k8s:获取pod的ip
获取pod ip
spec:
containers:
- name: xxx
env:
# 获取pod ip,并赋值给容器内的环境变量POD_IP
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
检查
- 进入pod查看POD_IP:
echo $POD_IP
cook
-
获取pod的其他属性添加到环境变量,如pod名, pod所在命名空间等
spec: containers: - name: xxx env: # 获取pod id,并赋值给容器内的环境变量POD_ID - name: POD_ID valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.uid # 获取pod 名字,并赋值给容器内的环境变量POD_NAME - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name # 获取pod所在namespace,并赋值给容器内的环境变量POD_NAMESPACE - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace
-
同一应用启n个pod时, 如果对应业务机器数量小于n, 就会有多个pod被部署在同一机器, 而应用日志都会通过数据卷挂载到宿主机, 因此会发生多个pod同时写入日志到宿主机相同文件的情况,这样不仅影响性能, 而且多个pod的日志混杂在一起, 不利于运维分析.
可以在应用的日志文件名字中加入POD_IP, 因为pod ip是不会重复的