不久前,我们一直在使用 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...
然后使用运行任意数量 kubectlt
的 docker exec 构建和启动此镜像。针对配置的集群的命令。使用相同的 Google Cloud SDK 镜像作为基础镜像的 VS Code 开发容器中使用了相同的方法。
这一直运行良好,并且该方法已被用作 Jenkins 以及本地 Mac 工作站上的部署工作流的一部分。
几个星期以来 - 它不再在 Mac 上本地工作。
所以:
kubectl
失败并返回 Unable to connect to the server: EOF
留言 (虽然在同一台 Mac 上 native 运行
kubectl
可以!)似乎 kubeclt 发送的底层 curl 请求在初始 SSL 握手期间被拒绝,但这可能与此无关。
有什么想法吗?
最佳答案
几个月来,我在从 Docker 容器内连接到 GKE 集群时遇到了完全相同的问题。深入研究后,我所有的curl
对 GKE 集群端点的请求正在抛出 OpenSSL SSL_connect: SSL_ERROR_SYSCALL
,这导致我遇到了这个问题:https://github.com/docker/for-mac/issues/5524 .
下载最新的 Docker Desktop for Mac 更新为我修复了它。
关于docker - kubectl 在 mac 上的 docker 容器中失败,出现 "Unable to connect to the server: EOF"但在 linux 上没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67488587/