如何使用 kubernetes client-go API 获取部署/服务的当前名称空间?它似乎不在客户端对象或配置中。
3 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
使用
ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
有效但很丑陋,当所需的实现存在Namespace()
于inClusterClientConfig
. 但是你如何从 开始得到那个对象 rest.InClusterConfig()
呢?它只能通过包外部实例化NewNonInteractiveDeferredLoadingClientConfig
。
我看到kubernetes #63707看起来相关但已被放弃。
一只甜甜圈
TA贡献1836条经验 获得超5个赞
您始终可以为每个命名空间设置上下文,然后从 kubeconfig 中读取您当前所在的上下文:
使用以下代码找出您所在的名称空间:
namespace, _, err := kubeconfig.Namespace() if err != nil { panic(err) }
这将返回您所在的名称空间。
扬帆大鱼
TA贡献1799条经验 获得超9个赞
在您的部署配置中添加此环境变量。
- name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace
这是使用kubernetes downward api
- 3 回答
- 0 关注
- 198 浏览
添加回答
举报
0/150
提交
取消