如何使用 cli 获取 kube 上下文列表

use*_*547 3 kubernetes kubectl

我正在尝试获取 kube-contexts 列表(并过滤 gke 集群),并使用一些工具最终得到:

kubectl config get-contexts | tr -s ' ' | cut -d ' ' -f 2 | grep gke
Run Code Online (Sandbox Code Playgroud)

输出:

gke_dev-redacted
gke_prod-redacted
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法来做到这一点(这不依赖于命令输出不使用制表符,而是使用多个空格的事实)。该命令不支持 yaml 或 json 输出:

--output yaml is not available in kubectl config get-contexts; resetting to default output format
Run Code Online (Sandbox Code Playgroud)

Emi*_*els 6

您可以提供--output标志以仅显示上下文的名称,例如:

$ kubectl config get-contexts --output=name
minikube
Run Code Online (Sandbox Code Playgroud)

然后很容易 grep 查找 GKE 上下文:

$ kubectl config get-contexts --output=name | grep "gke_*"
Run Code Online (Sandbox Code Playgroud)