Ale*_*lex 35 kubernetes google-kubernetes-engine
如标题中所述,是否可以从API中找到K8s群集名称?我环顾了API并找不到它.
usa*_*mec 17
kubectl config current-context 可以解决这个问题(它会输出更多的东西,例如项目名称,区域等,但是应该会给您所需的答案)。
如果您在 .kube/config 文件中的名称对您来说已经足够了,这个单行代码可以解决问题:
kubectl config view --minify -o jsonpath='{.clusters[].name}'
Run Code Online (Sandbox Code Playgroud)
注意 1:这里--minify是关键,因此它只会输出您当前上下文的名称。这里还有其他类似的答案,但如果没有“缩小”,您将在配置中列出其他可能让您感到困惑的上下文。
注意 2:您的 .kube/config 中的名称可能不会反映您的云提供商中的名称,如果该文件是由云提供商自动生成的,则名称应该匹配,如果您手动配置它,您可以只为本地配置键入任何名称.
注意 3:不要依赖kubectl config current-context这个只返回上下文的名称,而不是集群的名称。
kubernetes API对GKE群集名称了解不多,但是您可以像这样从Google metatdata服务器轻松获得群集名称。
kubectl run curl --rm --restart=Never -it --image=appropriate/curl -- -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-name
Run Code Online (Sandbox Code Playgroud)
问题并没有得到很好的描述.但是,如果此问题与之相关,Google Container Engine则coreypobrien提到群集的名称存储在节点的自定义元数据中.从节点内部运行以下命令,输出将是集群的名称:
curl http://metadata/computeMetadata/v1/instance/attributes/cluster-name -H "Metadata-Flavor: Google"
Run Code Online (Sandbox Code Playgroud)
如果您指定用例,我可能会扩展我的答案以涵盖它.
小智 7
我不相信有一个k8s群集名称.这个命令可以提供一些很好的信息
kubectl cluster-info
不幸的是,群集不知道它自己的名称,或任何其他可以唯一标识它的名称(K8s发行号#44954)。我想知道有关头盔问题#2055的信息。
小智 6
它与获取当前配置相同,但下面的命令给出了清晰的输出:
kubectl config view
This command will Check all possible clusters, as you know .KUBECONFIG may have multiple contexts
kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'
Run Code Online (Sandbox Code Playgroud)
And you will get output like
Cluster name Server
kubernetes https://localhost:6443
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19969 次 |
| 最近记录: |