提问者:小点点

从pod内部访问kubernetes命名空间(值)


我对kubernetes相当陌生。想知道在pod中运行的程序是否可以访问pod运行的命名空间。

让我解释一下我的用法。我的应用程序的命名空间中有两个pod。一个pod必须是statefulset并且必须至少有3个副本。其他pod(例如POD-A)可以只是一个普通的部署。现在POD-A需要与statefulset的特定实例通信。我在一篇文章中读到它可以使用这种地址格式-来完成

如果我在这里有误解,请帮助我。任何替代/更简单的解决方案也欢迎。提前感谢!


共2个答案

匿名用户

https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#the-downward-api有一个这样的例子。

    env:
    - name: MY_POD_NAMESPACE
      valueFrom:
        fieldRef:
          fieldPath: metadata.namespace

匿名用户

您可以使用向下API获取pod的命名空间:https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#the-downward-api(将命名空间挂载为环境变量)。

或者,如果serviceAcount挂载在pod中,则可以在文件中找到pod所在的命名空间: /var/run/secrets/kubernetes.io/serviceaccount/namespace.