不久前,我们一直在使用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代码开发容器中使用了相同的方法,该容器使用与基本映像相同的Google Cloud SDK映像。
这一直运行得很好,该方法已在Jenkins以及Mac工作站上作为部署工作流的一部分使用。
现在已经有几个星期了,它不再在Mac上本地工作了。
因此:
- 在AWS(Ubuntu(实例上构建并运行映像并部署到GKE即可工作
- 在英特尔Mac上的多路径(Ubuntu(实例上构建和运行映像是可行的
- 在同一台Mac上的Docker Desktop for Mac(3.3.1(上构建和运行映像是不起作用的。
kubectl
失败,返回Unable to connect to the server: EOF
消息
(不过在同一台Mac上以本机方式运行kubectl
也可以!(
在最初的SSL握手过程中,kubeclt发送的基本curl请求似乎被拒绝了,但这可能与bre无关。
有什么想法吗?
几个月来,我在Docker容器内连接GKE集群时遇到了完全相同的问题。深入研究后,我对GKE集群端点的所有curl
请求都抛出了OpenSSL SSL_connect: SSL_ERROR_SYSCALL
,这导致我出现了这个问题:https://github.com/docker/for-mac/issues/5524.
下载最新的Docker Desktop for Mac更新为我修复了它。