k8s:獲取pod的ip

獲取pod ip

spec:  
  containers:
  - name: xxx            
    env:
    # 獲取pod ip,並賦值給容器內的環境變量POD_IP
    - name: POD_IP
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: status.podIP

檢查api

  • 進入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是不會重複的ui

相關文章
相關標籤/搜索