kubectl 在 mac 上的 docker 容器中出现 "Unable to connect to the server: EOF" 而失败,但在 linux 上却没有

kubectl fails with "Unable to connect to the server: EOF" in docker container on mac but not on linux

一段时间以来,我们一直在使用 docker 容器来部署到 GKE 集群。该容器基于谷歌云 SDK 图像之一。 docker 文件类似于:

FROM gcr.io/google.com/cloudsdktool/cloud-sdk:322.0.0-alpine
RUN gcloud components install kubectl
...
# The docker image will also include any manifests etc. that is supposed to be deployed...

然后使用 docker exec 运行 任意数量的 kubectlt 命令针对配置的集群构建并启动此映像。

在 VS Code 开发容器中使用相同的方法,使用相同的 Google Cloud SDK 映像作为基础映像。

这一直运行良好,该方法已被用作 Jenkins 部署工作流程的一部分,并在本地 Mac 工作站上使用。

几个星期以来 - 它不再在 Mac 上本地工作。

所以:

(运行 kubectl 本身在同一个 Mac 上仍然有效!)

kubeclt 发送的底层 curl 请求似乎在初始 SSL 握手期间被拒绝,但这可能不相关。

有什么想法吗?

几个月来,我在从 Docker 容器内连接到 GKE 集群时遇到了完全相同的问题。深入研究后,我对 GKE 集群端点的所有 curl 请求都抛出 OpenSSL SSL_connect: SSL_ERROR_SYSCALL,这导致我遇到了这个问题:https://github.com/docker/for-mac/issues/5524.

正在为 Mac 更新下载最新的 Docker 桌面,为我修复了它。