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

相关文章
相关标签/搜索