yaml中如下配置,可以将pod name注入容器中的名为POD_NAME的环境变量中:

      containers:
      - name: nginx
        image: xxx.image
        env:
          - name: POD_NAME
            valueFrom:
              fieldRef:
                fieldPath: metadata.name

参考链接:https://kubernetes.io/zh/docs/tasks/inject-data-application/environment-variable-expose-pod-information/

项目容器中的服务均由systemctl 拉起,在服务调用的脚本中,无法环境到全局变量,因此上面注入到容器中的POD_NAME无法拿到,有如下两种方法可以解决该问题:

1、服务调用的脚本获取变量改env为cat /proc/1/environ | tr '\0' '\n' > /home/22,从文件中获取

2、设置在systemctl调用的service文件中设置Environment,参考链接:https://blog.csdn.net/tmaccs/article/details/105636028

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐