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

GKE Ubuntu系统集群中kubectl exec/logs操作失败求助

解决GKE Ubuntu节点执行kubectl exec/logs时的SSH隧道错误

我之前维护GKE Ubuntu节点集群时也碰到过一模一样的错误,这个问题本质是K8s API Server无法通过SSH隧道连接到节点,导致没法执行exec或查看日志操作。下面是我亲测有效的排查和解决步骤:

1. 确认项目SSH密钥配置

GKE节点依赖GCP项目级的SSH密钥建立隧道连接,先检查你的密钥是否已添加到项目中:

  • 执行命令查看项目现有SSH密钥:
    gcloud compute project-info describe | grep -A 20 ssh-keys
    
  • 如果找不到你的<username>对应的公钥,生成并添加密钥:
    # 生成密钥(默认路径是~/.ssh/google_compute)
    gcloud compute ssh-keygen
    # 将公钥添加到项目元数据
    gcloud compute project-info add-metadata --metadata ssh-keys="$(cat ~/.ssh/google_compute.pub)"
    

2. 验证节点SSH连通性

先尝试直接SSH到节点,确认基础连通性没问题:

# 先获取节点名称
kubectl get nodes
# SSH到目标节点
gcloud compute ssh <node-name> --zone us-east1-c
  • 如果SSH失败,去GCP控制台的Compute Engine > 实例 > 对应节点 > 日志查看启动日志,确认sshd服务是否正常启动。Ubuntu节点默认会启用SSH,但偶尔会有初始化异常导致服务未启动。

3. 检查节点池SSH启用状态

确认默认节点池是否开启了SSH访问(默认是开启的,但可能被误配置):

  • 查看节点池配置:
    gcloud container node-pools describe default-pool --cluster gke-test-cluster --zone us-east1-c | grep enable-ssh
    
  • 如果输出是enable-ssh: false,更新节点池开启SSH:
    gcloud container node-pools update default-pool --cluster gke-test-cluster --zone us-east1-c --enable-ssh
    

4. 重启节点或重建节点池

如果以上配置都没问题,可能是节点初始化时的临时异常:

  • 尝试重启单个节点:
    gcloud compute instances restart <node-name> --zone us-east1-c
    
  • 若重启无效,重建默认节点池(注意:会替换所有节点,确保你的应用有足够副本保证高可用):
    gcloud container node-pools recreate default-pool --cluster gke-test-cluster --zone us-east1-c
    

5. 检查IAM权限

确保你的账号拥有足够权限访问节点:

  • 至少需要roles/container.developer(用于集群操作)和compute.instanceAdmin.v1(用于节点SSH访问)权限。可以通过以下命令查看你的权限:
    gcloud projects get-iam-policy <your-project-id> --filter="bindings.members:user:<your-email>" --format="value(bindings.role)"
    

补充说明

GKE的Ubuntu镜像节点和官方的Container-Optimized OS节点在SSH配置上有差异,Ubuntu节点更依赖项目级的SSH密钥,所以一定要确保密钥正确关联到你的用户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:14:13