常见问题
我可以使用 minikube 运行旧版本的 Kubernetes 吗?我需要降级我的 minikube 版本吗?
您无需下载旧版本的 minikube 即可运行旧版本的 Kubernetes。您可以使用 --kubernetes-version 标志创建任何您想要的版本的 Kubernetes 集群。
示例
minikube start --kubernetes-version=v1.34.0
如何创建多个 minikube 集群?
默认情况下,minikube start 创建一个名为“minikube”的集群。如果您想创建不同的集群或更改其名称,可以使用 --profile(或 -p)标志,这将创建一个指定名称的集群。请注意,您可以在同一台机器上拥有多个集群。
要查看当前集群列表,请运行
minikube profile list
minikube 的配置文件彼此独立,拥有各自的设置和驱动。如果您想创建一个包含多个节点的单个集群,请尝试 多节点功能。
我可以使用 minikube 作为 Docker Desktop 的替代品吗?
是的!请遵循我们关于使用 minikube 作为 Docker Desktop 替代品的教程。
我可以在没有运行 Kubernetes 的情况下启动 minikube 吗?
是的!如果您只想将 minikube 用作 Docker Desktop 的替代品而不启动 Kubernetes 本身,请尝试
minikube start --container-runtime=docker --no-kubernetes
或者,如果您想暂时关闭 Kubernetes,可以先暂停然后稍后恢复 Kubernetes
minikube pause
minikube 还有一个插件,可以在一定时间不活动后自动暂停 Kubernetes
minikube addons enable auto-pause
Docker 驱动:如何设置 minikube 的 cgroup 管理器?
对于非 VM 和非 SSH 驱动,minikube 会尝试自动检测系统的 cgroups 驱动/管理器,并相应地配置所有其他组件。对于 VM 和 SSH 驱动,minikube 默认使用 cgroupfs cgroups 驱动/管理器。要强制使用 systemd cgroup 管理器,请运行
minikube start --force-systemd=true
如果我已经有一个带有 VM 驱动的集群,我该如何使用 Docker 驱动运行 minikube?
首先,请确保您的 Docker 服务正在运行。然后,您需要执行以下操作之一:
(a)删除现有集群并创建一个新集群
minikube delete
minikube start --driver=docker
或者,(b)创建一个具有不同配置文件名称的第二个集群
minikube start -p p1 --driver=docker
minikube 支持 IPv6 吗?
minikube 目前不支持 IPv6。但是,它已在路线图上。您也可以参考公开的 issue。
如何在 Linux 上避免密码提示?
最简单的方法是使用 docker 驱动,因为后端服务始终以 root 用户身份运行。
none 用户可以尝试设置 CHANGE_MINIKUBE_NONE_USER=true,这样 kubectl 等命令就可以在没有 sudo 的情况下运行。有关更多详细信息,请参阅环境变量。
或者,您可以配置 sudo,使其永远不会提示输入 minikube 发出的命令。
如何忽略系统验证?
kubeadm 是 minikube 的引导程序,它会在安装 Kubernetes 之前验证主机系统的一系列功能。如果您收到错误消息,但仍希望尝试 minikube 尽管系统存在限制,您可以通过添加此附加选项来跳过验证来启动 minikube
minikube start --extra-config kubeadm.ignore-preflight-errors=SystemVerification
使用 minikube 设置 Knative 所需的最低资源分配是多少?
在使用 minikube 设置 Knative 时,请分配足够的资源,尤其是在本地计算机上运行 minikube 集群时。我们建议分配至少 3 个 CPU 和 3G 内存。
minikube start --cpus 3 --memory 3072
我需要本地安装 kubectl 吗?
不,minikube 自带了 kubectl 的安装。请参阅minikube 的 kubectl 文档。
如何选择加入 Beta 发布通知?
只需运行以下命令即可注册 beta 通知
minikube config set WantBetaUpdateNotification true
我能去掉 minikube 输出中的表情符号吗?
是的!如果您不喜欢 minikube 输出中的表情符号 😔,只需将 MINIKUBE_IN_STYLE 环境变量设置为 0 或 false 即可。
MINIKUBE_IN_STYLE=0 minikube start
如何从远程网络访问 minikube 集群?
minikube 的主要目标是快速设置本地 Kubernetes 集群,因此我们强烈不建议在生产环境中使用 minikube 或用于监听远程流量。根据设计,minikube 只用于监听本地网络。
但是,可以配置 minikube 以监听远程网络。这将使您的网络暴露给外部世界,不推荐这样做。如果您不完全了解安全风险,请避免使用此功能。
对于 docker 和 podman 驱动,请使用 --listen-address 标志
minikube start --listen-address=0.0.0.0
如何为 minikube 分配最大资源?
在 start 命令中将 memory 和 cpus 标志设置为 max 将使用可用的最大资源。
minikube start --memory=max --cpus=max
如何将 minikube 运行在另一个硬盘上?
将 MINIKUBE_HOME 环境变量设置为您希望 minikube 运行的驱动器上的一个路径,然后运行 minikube start。
# Unix
export MINIKUBE_HOME=/otherdrive/.minikube
# Windows
$env:MINIKUBE_HOME = "D:\.minikube"
minikube start
我可以为 minikube 集群设置静态 IP 吗?
目前,只有在使用 Docker 或 Podman 驱动时才能设置静态 IP。
有关更多详细信息,请参阅静态 IP 教程。
如何忽略 kubeadm 的要求和预检检查(例如最低 CPU 数量)?
Kubeadm 对维护稳定的 Kubernetes 集群有一定的软硬件要求。但是,可以忽略这些要求(例如,在单 CPU 上运行 minikube 时)来运行以下命令
minikube start --force --extra-config=kubeadm.skip-phases=preflight
不推荐这样做,但对于一些愿意接受潜在性能或稳定性问题的用户来说,这可能是唯一的选择。
我在中国,尝试启动 minikube 时遇到错误,该怎么办?
执行 minikube start 后,minikube 会尝试从 gcr.io 或 Docker Hub 拉取镜像。然而,已确认中国大陆用户可能无法访问 gcr.io 或 Docker Hub。因此,在中国大陆,minikube start 很可能会失败。
对于中国用户来说,原因是中国的防火墙阻止了从中国大陆访问 gcr.io 或 Docker Hub 的任何请求。
minikube 是一个开放的社区,我们始终愿意帮助世界各地的用户使用我们的开源软件,并在可能的情况下提供协助。以下是解决此网络封锁的 3 种可能方法。
-
请改用
minikube start --image-mirror-country='cn'。阿里云(一家中国公司)提供了一个镜像仓库(registry.cn-hangzhou.aliyuncs.com/google_containers),中国用户可以访问该仓库。通过使用--image-mirror-country='cn'标志,minikube 将优先尝试从阿里云镜像站点拉取镜像。
注意:当 gcr.io 上发布新镜像时,镜像同步到阿里云镜像仓库可能需要几天时间。然而,minikube 默认会尝试拉取最新的镜像,这会导致拉取失败。在这种情况下,您必须同时使用--kubernetes-version标志,告诉 minikube 使用阿里云上可用的旧版本镜像。
例如,minikube start --image-mirror-country='cn' --kubernetes-version=v1.34.0将指示 minikube 从阿里云拉取 v1.34.0 的 k8s 镜像。 -
如果您有私有的云提供商提供的镜像仓库,可以通过
--image-repository标志指定。例如,使用minikube start --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'将指示 minikube 优先尝试从registry.cn-hangzhou.aliyuncs.com/google_containers镜像仓库拉取镜像。 -
使用代理服务器/VPN(如果您有的话)。
注意:请遵守当地法律。在某些地区,使用未经授权的代理服务器/VPN 是非法的。
对于 none 驱动,如何安装 containernetworking-plugins?
前往 containernetworking-plugins 查找最新版本。
然后执行以下命令
CNI_PLUGIN_VERSION="<version_here>"
CNI_PLUGIN_TAR="cni-plugins-linux-amd64-$CNI_PLUGIN_VERSION.tgz" # change arch if not on amd64
CNI_PLUGIN_INSTALL_DIR="/opt/cni/bin"
curl -LO "https://github.com/containernetworking/plugins/releases/download/$CNI_PLUGIN_VERSION/$CNI_PLUGIN_TAR"
sudo mkdir -p "$CNI_PLUGIN_INSTALL_DIR"
sudo tar -xf "$CNI_PLUGIN_TAR" -C "$CNI_PLUGIN_INSTALL_DIR"
rm "$CNI_PLUGIN_TAR"