【问题标题】:How to access kubernetes namespace from a yaml file如何从 yaml 文件访问 kubernetes 命名空间
【发布时间】:2017-10-31 14:05:00
【问题描述】:

我正在尝试创建 yaml 以使用 kubernetes 进行部署。我对不同的环境使用相同的脚本,它用命名空间分隔。现在,我需要访问部署 yaml 中的命名空间名称,例如

"name":"$(namespace)"

在 yaml 文件中。有可能吗?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    edit 抱歉,我可能误解了你的问题:如果你想访问 Pod 正在运行的当前命名空间,你可以通过 env: valueFrom: 构造将其注入到它的环境中,描述更详细here

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

    从 yaml 中省略 namespace: 并将其作为 kubectl --namespace=foo1 create -f my-thing.yaml 提供给 kubectl(当然,假设您使用的是 kubectl;答案背后的想法是相同的,只是机制会改变如果使用不同的方法)

    您还可以在上下文中指定~/.kube/config 中的默认命名空间,并以这种方式对其进行寻址:kubectl --context=server-foo1 这也允许将不同的凭据与不同的命名空间相关联。它们最终都归结为相同的效果,只是哪种情况最适合您的情况。

    最极端的(?)形式是你也可以有多个配置并通过env KUBECONFIG=$TMPDIR/foo1.yaml kubectl create -f my-thing.yaml在它们之间切换

    【讨论】:

      猜你喜欢
      • 2021-05-16
      • 2018-12-11
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      相关资源
      最近更新 更多