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

标签 docker ubuntu visual-studio-code google-kubernetes-engine macos-big-sur

不久前,我们一直在使用 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 上本地工作。
所以:
  • 在 AWS (Ubuntu) 实例上构建和运行镜像并部署到 GKE 是可行的。
  • 在 Intel Mac 上的 Multipass (Ubuntu) 实例上构建和运行镜像是可行的。
  • 在同一台 Mac 上的 Docker Desktop for Mac (3.3.1) 上构建和运行镜像 不是 工作。 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/

    相关文章:

    c# - 在Dockerfile中仅读取第一行

    ubuntu - 网络摄像头可见,但在 VMWare Ubuntu guest 上为 "no frame"

    linux - 为 Linux 构建的 NSIS unicode

    c++ - Visual Studio Code 找不到 g++.exe (Windows 10)

    visual-studio-code - VS Code 中的调试器中断命令?

    docker - 应该将所有依赖项安装到docker镜像吗?还是让它取决于主机

    使用 Bitbucket pipelane 和 Docker 进行 Android 仪器测试

    macos - 适用于 Mac 和 VMWare Fusion 的 Docker

    ubuntu - 从远程服务器运行 jupyter 笔记本的脚本

    windows - 使用 Stop-Transcript 仅记录输入