📜  minikube 不安全的注册表 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:32:54.660000             🧑  作者: Mango

minikube 不安全的注册表 - Shell/Bash

Minikube 是一个非常流行的 Kubernetes 部署工具,但是有时候在部署中可能会遇到一个问题,那就是使用 minikube 访问不安全的 Docker 镜像注册表时会出现错误。本文将向你介绍这个问题的背景以及可能的解决方案。

背景

Minikube 是一个本地部署 Kubernetes 的工具。在 Minikube 中,Docker 镜像被放在了 Minikube 的虚拟机里。例如,当你使用命令 minikube start 启动 Minikube 时,它会自动将 Docker 镜像放在 Minikube 的虚拟机中。

然而有些 Docker 镜像托管在不安全的 Docker 镜像注册表中,例如 Docker Hub 甚至 有些私有的 Docker 镜像注册表。默认情况下,Minikube 不会允许访问不安全的 Docker 镜像注册表。当你使用命令 kubectl create -f mydeployment.yaml 部署一些应用程序时,如果这些应用程序需要使用不安全的 Docker 镜像注册表,你就会遇到问题。

具体的错误信息通常像这样:no basic auth credentialsx509: certificate signed by unknown authority.

解决方案

有两种常用的解决方案可以解决这个问题:

开启 Minikube Docker 镜像注册表

Minikube 允许你在 Minikube 中运行 Docker 镜像注册表。你可以在 Minikube 中开启 Docker 镜像注册表,并将不安全的 Docker 镜像注册表添加到 Minikube 中。具体的步骤如下:

  1. 启动 Minikube:minikube start

  2. 打开 Minikube 的 Docker 镜像注册表:minikube docker-env。这将返回一些环境变量,你需要将它们加入到你的 shell 中,具体的步骤可以查看返回结果中的信息。

  3. 使用 Docker 命令添加不安全的 Docker 镜像注册表。例如,如果你要添加私有的 Docker 镜像注册表,你可以使用以下命令:docker login myregistry.com

添加 TLS 证书

如果你的 Docker 镜像注册表使用 TLS 证书,你需要将证书添加到 Minikube 的虚拟机中。具体的步骤如下:

  1. 将 TLS 证书放置在某个路径下。

  2. 使用 ssh 命令连接到 Minikube 的虚拟机:minikube ssh

  3. 在虚拟机中创建证书文件夹:sudo mkdir -p /usr/local/share/ca-certificates/myregistry.com

  4. 将 TLS 证书复制到证书文件夹中:sudo cp /path/to/cert/myregistry.crt /usr/local/share/ca-certificates/myregistry.com/

  5. 更新证书列表:sudo update-ca-certificates

总结

本文向你介绍了 Minikube 中访问不安全的 Docker 镜像注册表的问题,并提供了两种解决方案。根据你的具体情况选择适合自己的解决方案。