獲取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是不會重復的