我无法从计算机连接到任何GKE群集。在远程机器上,它正在工作,但是在我的机器上却没有,我不知道为什么。如果你们当中有人有什么想法...
我已经从gcloud(kubectl
)内安装了gcloud components install kubectl
我正在运行gcloud init
,然后在现有群集上或在新创建的gcloud container clusters create my-cluster --preemptible --cluster-version 1.12.7-gke.10 --machine-type n1-standard-1 --disk-size 20 --num-nodes 1
群集上
我正在使用gcloud container clusters get-credentials my-cluster --zone europe-west1-b --project my-project-123456
检索我的凭据,这为我的kubectl
创建了新的上下文。切换到它(使用kubectx
)。
但是当我尝试联系我的集群(例如kubectl get pods
)时,它失败并显示以下消息:
无法连接到服务器:x509:未知授权机构签名的证书
我只是弄不清楚为什么我的本地kubectl
无法验证GoogleCA。
我跟踪了我发现的所有资源,并尝试在其他区域/区域中的其他群集中使用其他版本的python(2.7和3.6),重新初始化gcloud,使用了另一个Google帐户,另一个版本的kubectl(1.11、1.12和1.14 ),请在Linux(薄荷19.1 Tessa)上更新我的CA(sudo update-ca-certificates
)。
有人已经面对这个问题并找到了解决方案吗?
答案 0 :(得分:6)
如果有人能够登录后遇到此问题,则此解决方案对我有效
gcloud container clusters get-credentials YOURCLUSTERHERE --zone YOURCLUSTERZONEHERE
填写信息并运行后,您应该可以继续前进。
答案 1 :(得分:1)
简便的方法将运行gcloud auth login
,正如documentation所说:
gcloud身份验证登录-授权gcloud使用Google用户凭据访问Cloud Platform
通过基于Web的授权流程获取用户帐户的访问凭据。成功完成此命令后,它将当前配置中的活动帐户设置为指定的帐户。如果没有配置,它将创建一个名为default的配置。 使用
gcloud auth list
查看凭据帐户。
这将要求您使用您的帐户登录Google Cloud SDK,并要求允许访问以下内容:
查看和管理跨Google Cloud Platform服务的数据
查看和管理您的Google Compute Engine资源>
查看和管理在Google App Engine上部署的应用程序
有关如何Install SDK with apt-get on Debian and Ubuntu以及此处Installing with yum Red Hat and CentOS的过程。
答案 2 :(得分:0)
这个问题发生在我身上,因为我的证书错误。由于terraform无法与您的远程群集连接的相关原因,可能会发生这种情况。 为了使用已经设置的默认kubeconfig凭据,您可以将提供程序保留为空。
provider "kubernetes" {
}
答案 3 :(得分:0)
众所周知,我这边的问题(以及为什么我的连接有时会混乱而不是其他时间)的原因是,在我的专业网络上我有一个MITM代理,可以代替Google证书和我公司的证书。
所以... kubectl
拒绝了证书...很正常。