【问题标题】:How to get the current namespace in a Pod?如何获取 Pod 中的当前命名空间?
【发布时间】:2018-02-13 05:26:09
【问题描述】:

我能想到的一种方法是在定义 Pod 时设置一个环境,其值为 Pod 的命名空间。
动态获取命名空间而不需要更改 Pod 将是 更好,因为它减轻了构建 Pod 的负担。

那么有没有办法在 Pod 中获取当前命名空间?

【问题讨论】:

    标签: kubernetes kubernetes-go-client


    【解决方案1】:

    试试文件:

    /var/run/secrets/kubernetes.io/serviceaccount/namespace
    

    【讨论】:

      【解决方案2】:

      如果你想使用环境变量,你不需要在 pod 规范中设置静态命名空间环境变量,你可以使用“向下 API”让 k8s 用当前命名空间动态填充它。见https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#the-downward-api

      【讨论】:

      • 是的,但是在定义 Pod Spec 的时候也需要设置一个环境变量,虽然这个值是从 Pod 元数据或者 serviceAccount 文件派生的。这些方法看起来很相似,因为它们都尝试从 serviceAccountFile 获取当前命名空间。非常感谢,这给了我另一个我没有想到的解决方案:D
      • @flyer 您最终采用了哪种解决方案?
      • @user2700022 使用/var/run/secrets/kubernetes.io/serviceaccount/namespace 作为接受的答案
      猜你喜欢
      • 2012-02-12
      • 1970-01-01
      • 2020-06-17
      • 2020-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多