无法从 Google 云 运行 容器访问 GKE

Can't reach GKE from a Google Cloud Run container

所以我在 Google 云 运行 上部署了一个网站。我想从服务器的容器中在 GKE 上启动作业。我这样在容器中设置 GKE:

RUN gcloud container clusters get-credentials deployment --zone europe-west2-c --project myproject

然后我在容器中有一个简单的 yaml,我使用 kubectl 部署它。 当 运行 机器上的容器时,一切运行正常。 运行 Cloud 运行 中的容器时,出现以下错误:

Error from server (NotFound): the server could not find the requested resource

经过一些研究后,我的 kubectl 版本似乎与我的 GKE 版本不匹配,但我尝试更改它,但它并没有改变任何错误。

RUN 语句在您的 Docker 文件的一部分中执行,并且它们作为您的 Docker 图像构建的一部分执行(无法访问您的 Google凭据)。这不是 Cloud 运行 特定的问题。

get-credentials 命令实际上没有获得任何凭据。它只是制作了一个包含 GKE 集群的 IP 地址和 CA 证书的 KUBECONFIG 文件(如果你想通过 TLS 跳过服务器的真实性验证则不需要)。

如果您想在没有 gcloud 的情况下从其他地方连接到 GKE 集群,请阅读我的 post Authenticating to GKE without gcloud (mirror),其中详细介绍了如何提前制作 KUBECONFIG 文件并与你的容器镜像。