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

  1. 獲取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
    
  2. 同一應用啟n個pod時, 如果對應業務機器數量小於n, 就會有多個pod被部署在同一機器, 而應用日志都會通過數據卷掛載到宿主機, 因此會發生多個pod同時寫入日志到宿主機相同文件的情況,這樣不僅影響性能, 而且多個pod的日志混雜在一起, 不利於運維分析.

    可以在應用的日志文件名字中加入POD_IP, 因為pod ip是不會重復的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM