从本地集群访问本地进程

Access local process from local cluster

我在 Mac 上的 Docker 桌面下有一个本地 Kubernetes 集群 运行。我是 运行 另一个 docker 相关的本地进程(本地不安全注册表)。我有兴趣让本地集群内的进程从本地 docker 注册表获取 push/pull 图像。

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

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

运行kubernetes集群内部的registry是一个选项吗?

这样你就可以使用 NodePort 服务并将图像推送到像

这样的地址
  • "localhost:9000/myrepo".

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

正如我在评论中提到的

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

部署纯 HTTP 注册表

This procedure configures Docker to entirely disregard security for your registry. This is very insecure and is not recommended. It exposes your registry to trivial man-in-the-middle (MITM) attacks. Only use this solution for isolated testing or in a tightly controlled, air-gapped environment.

Edit the daemon.json file, whose default location is /etc/docker/daemon.json on Linux or C:\ProgramData\docker\config\daemon.json on Windows Server. If you use Docker Desktop for Mac or Docker Desktop for Windows, click the Docker icon, choose Preferences (Mac) or Settings (Windows), and choose Docker Engine.

If the daemon.json file does not exist, create it. Assuming there are no other settings in the file, it should have the following contents:

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

还在 macOS 的介质上找到了一个教程。看看here.