我正在尝试使用kubectl config get-contexts
获取当前使用的Kubernetes上下文的名称空间。
我知道有一个命令kubectl config get-contexts --no-headers | grep '*' | grep -Eo '\S+$'
,但我看到它无法在json / yaml中输出。我随附的唯一脚本是:
user.Roles.Add
答案 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