如何使用kubectl获取当前上下文的当前名称空间?

时间:2019-04-25 16:37:16

标签: kubernetes

我正在尝试使用kubectl config get-contexts获取当前使用的Kubernetes上下文的名称空间。

我知道有一个命令kubectl config get-contexts --no-headers | grep '*' | grep -Eo '\S+$' ,但我看到它无法在json / yaml中输出。我随附的唯一脚本是:

user.Roles.Add

5 个答案:

答案 0 :(得分:3)

如果您在上下文中选择了名称空间,这会很好地工作

kubectl config view --minify --output 'jsonpath={..namespace}'

您始终可以使用kube-ps1

在提示中显示当前上下文和名称空间。

答案 1 :(得分:3)

知道每个命名空间都会生成一个默认的服务帐户,让我们使用它对我们有利:

kubectl describe sa default | grep Namespace

答案 2 :(得分:2)

易于记忆的命令行

kubectl config view | grep namespace

答案 3 :(得分:2)

这将打印当前正在使用的名称空间。

$kubectl config view --minify | grep namespace

答案 4 :(得分:0)

1。 kubectl

有时kubectl config view --minify将不会显示default命名空间,因此获取该命名空间的更可靠的解决方案是:

NS=$(kubectl config view --minify --output 'jsonpath={..namespace}')
NS=$([ ! -z "$NS" ] && echo "$NS" || echo "default")

2。 kubens插件

kubens插件https://github.com/ahmetb/kubectx/blob/master/kubens,也是一个有趣的解决方案:

# kubens -c
default