【问题标题】:Access local process from local cluster从本地集群访问本地进程
【发布时间】:2021-04-17 21:11:49
【问题描述】:

我有一个在 Mac 上的 Docker Desktop 下运行的本地 Kubernetes 集群。我正在我的机器上本地运行另一个与 docker 相关的进程(本地不安全的注册表)。我有兴趣在本地集群中获取一个进程以从本地 docker 注册表推送/拉取图像。

如何公开本地注册表以使本地 Kubernetes 集群内的 pod 可以访问?

一种方法是让 Docker 桌面集群和 docker 注册表使用相同的 docker 网络。将注册表添加到现有网络很容易。 如何将 Docker 桌面集群添加到网络中?

【问题讨论】:

  • 我认为文档here 中提到了您要查找的内容,您可以检查一下吗?还为此找到了tutorial。如果这能回答您的问题,请告诉我。

标签: macos docker kubernetes local docker-desktop


【解决方案1】:

正如我在 cmets 中提到的

我认为文档here 中提到了您要查找的内容。您必须将本地不安全注册表添加为桌面版 docker 中的不安全注册表值。重启后应该就可以使用了。

部署一个普通的 HTTP 注册表

此过程将 Docker 配置为完全忽略注册表的安全性。这是非常不安全的,不推荐。它将您的注册表暴露给微不足道的中间人 (MITM) 攻击。仅将此解决方案用于隔离测试或严格控制的气隙环境。

编辑 daemon.json 文件,其默认位置是 Linux 上的 /etc/docker/daemon.json 或 Windows Server 上的 C:\ProgramData\docker\config\daemon.json。如果您使用 Docker Desktop for Mac 或 Docker Desktop for Windows,请单击 Docker 图标,选择 Preferences (Mac) 或 Settings (Windows),然后选择 Docker Engine。

如果 daemon.json 文件不存在,则创建它。假设文件中没有其他设置,它应该有以下内容:

{
  "insecure-registries" : ["myregistrydomain.com:5000"]
}

还找到了有关 macOS 介质的教程。看看here

【讨论】:

    【解决方案2】:

    是否可以在 kubernetes 集群内运行注册表?

    这样您就可以使用 NodePort 服务并将图像推送到类似的地址

    • “本地主机:9000/myrepo”。

    这很重要,因为 Docker 允许本地主机的不安全(非 SSL)连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 2020-04-03
      • 2021-12-17
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多