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

能否让GKE管理托管节点池外节点?如何将外部节点加入GKE集群?

GKE外部节点管理与kubeadm加入问题解答

一、GKE能否管理托管节点池外的节点?

标准托管GKE集群不支持直接管控托管节点池之外的节点(如其他GCP项目的GCE实例、AWS EC2实例),因为托管集群的控制平面和节点生命周期由GCP完全托管,仅允许管理同项目内的自定义/托管节点池。

但可以通过以下方案实现跨云/跨项目节点的统一管理:

  • 使用Anthos GKE:Anthos支持混合云集群部署,可将其他GCP项目的GCE、AWS EC2等外部节点注册到GKE集群中,纳入统一的管控体系,包括调度、监控和运维。
  • 若无需完全纳入GKE管控,可搭建独立Kubernetes集群,通过Anthos Config Sync实现配置的统一同步,但这类节点不属于GKE集群的一部分。

二、无法通过kubeadm获取令牌,如何让外部节点加入GKE?

GKE托管集群的控制平面由GCP托管,用户无权限直接执行kubeadm token create等操作,可通过以下两种方式解决:

方法1:使用Anthos注册命令(推荐,适用于混合云场景)

若使用Anthos,直接通过gcloud命令完成节点注册,无需手动处理kubeadm凭证:

# 注册外部节点到GKE Anthos集群
gcloud anthos clusters register CLUSTER_NAME \
  --gke-cluster=projects/PROJECT_ID/locations/ZONE/clusters/GKE_CLUSTER_NAME \
  --agent-file=agent.yaml

执行命令后,将生成的agent.yaml部署到外部节点即可完成注册。

方法2:手动生成凭证执行kubeadm join

如果不使用Anthos,可手动获取集群凭证并生成可用的join令牌:

  1. 获取集群CA证书和API地址
    # 获取集群CA证书,保存到ca.crt
    gcloud container clusters describe CLUSTER_NAME --zone ZONE --format="value(masterAuth.clusterCaCertificate)" > ca.crt
    # 获取API服务器地址
    API_ENDPOINT=$(gcloud container clusters describe CLUSTER_NAME --zone ZONE --format="value(endpoint)")
    
  2. 创建节点加入专用ServiceAccount并生成令牌
    # 创建ServiceAccount
    kubectl create sa node-joiner -n kube-system
    # 绑定节点引导所需的ClusterRole
    kubectl create clusterrolebinding node-joiner-binding --clusterrole=system:node-bootstrapper --serviceaccount=kube-system:node-joiner
    # 生成有效期24小时的令牌
    JOIN_TOKEN=$(kubectl create token node-joiner -n kube-system --duration=24h)
    
  3. 计算CA证书哈希值
    CA_HASH=$(openssl x509 -pubkey -in ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //')
    
  4. 在外部节点执行kubeadm join
    kubeadm join ${API_ENDPOINT}:443 --token ${JOIN_TOKEN} --discovery-token-ca-cert-hash sha256:${CA_HASH}
    

内容的提问来源于stack exchange,提问作者tskuzzy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:01:12