直接访问GKE集群时无法安装Helm chart



我已经使用Autopilot设置设置了一个基本的GKE集群。我可以使用kubectl在它上面安装Helm charts,并使用适当的kubecconfig指向GKE集群。

我想在没有kubecconfig的情况下做同样的事情,通过提供带有相关参数的集群详细信息。要做到这一点,我运行一个docker容器使用alpine/helm图像并传递参数化命令,如下所示:

docker run --rm -v $(pwd):/chart alpine/helm install <my_chart_name> /chart --kube-apiserver <cluster_endpoint> --kube-ca-file /chart/<cluster_certificate_file> --kube-as-user <my_gke_cluster_username> --kube-token <token>

不幸的是它返回:

Error: INSTALLATION FAILED: Kubernetes cluster unreachable: Get "http://<cluster_endpoint>/version": dial tcp <cluster_endpoint>:80: i/o timeout

这在GKE中是否可行?

问题解决了!一个更有经验的同事找到了解决办法。

  1. 我应该使用包含"http://"协议规范。然而,仍然返回"Kubernetes集群不可达;错误,带有"未知"。而不是细节。
  2. 我一直在使用不正确的用户名。应该创建一个新的服务帐户,而不是从kubecconfig文件中创建的帐户,并以system:serviceaccount:<namespace>:<service_account>的形式使用其名称。但是,这也不会改变错误。
  3. 服务帐号缺少合适的角色,可以执行以下命令:kubectl create rolebinding --clusterrole=cluster-admin --serviceaccount=<namespace>:<service_account>。离岸金融中心,集群管理员现在可能是我们想要免费赠送的角色。

最新更新