You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅通过kubectl判断Kubernetes集群所属的主流超大规模云厂商(AWS、Azure、GKE)

如何仅通过kubectl判断Kubernetes集群所属的主流超大规模云厂商(AWS、Azure、GKE)

嘿,这个场景我太熟悉了!没有云厂商控制台权限的情况下,完全可以靠kubectl从集群本身挖信息来判断归属,下面几个方法亲测靠谱:

1. 查看节点的ProviderID(最直接)

每个云厂商的节点都会在spec.providerID里带上专属格式的标识,执行这条命令就能一目了然:

kubectl get nodes -o jsonpath='{.items[*].spec.providerID}'
  • AWS EKS的格式:aws:///<区域>/<EC2实例ID>,比如aws:///us-east-1/i-0abc123def456
  • Azure AKS的格式:azure:///subscriptions/<订阅ID>/resourceGroups/<资源组>/providers/Microsoft.Compute/virtualMachines/<VM名称>
  • GKE的格式:gce:///<GCP项目ID>/<区域>/<GCE实例ID>,比如gce://my-gcp-project/us-central1-a/gke-cluster-1-node-pool-1-abc123

2. 检查节点的标签/注解

各大云厂商都会给节点打上专属的标签和注解,快速扫一眼就能定位:
执行命令查看所有节点标签:

kubectl get nodes --show-labels

或者查看单个节点的详细注解:

kubectl describe node <节点名称>
  • EKS节点会带有eks.amazonaws.com/前缀的标签,比如eks.amazonaws.com/nodegroup=<节点组名称>
  • AKS节点会带有kubernetes.azure.com/前缀的标签,比如kubernetes.azure.com/cluster=<集群名称>
  • GKE节点会带有cloud.google.com/gke-nodepool=<节点池名称>或者google-cloud-node=true这类标签,注解里也会有container.googleapis.com/instance_id这类GCP专属字段

3. 查看kube-system命名空间的专属组件

每个云厂商的K8s集群都会在kube-system里部署自己的运维组件,执行命令看看有没有标志性Pod:

kubectl get pods -n kube-system
  • EKS:会有aws-node DaemonSet(负责VPC CNI网络)、coredns Pod名称可能带eks前缀
  • AKS:会有azure-cni-networkmonitor、cloud-node-manager、aks-link这类专属Pod
  • GKE:会有gke-metrics-agent、konnectivity-agent、gke-system-monitor这类GKE特有的Pod

4. 检查默认存储类(StorageClass)

云厂商默认创建的存储类会指向自家的存储服务,执行命令查看:

kubectl get storageclass
  • EKS默认存储类的PROVISIONER是kubernetes.io/aws-ebs,名称通常是gp2或gp3
  • AKS默认存储类的PROVISIONER是kubernetes.io/azure-disk或disk.csi.azure.com
  • GKE默认存储类的PROVISIONER是kubernetes.io/gce-pd或pd.csi.storage.gke.io

一般来说,优先看ProviderID或者节点标签就能快速确定,其他方法可以作为辅助验证~

备注:内容来源于stack exchange,提问作者chris_f

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 09:14:35