常见问题
我可以在 minikube 中运行旧版本的 Kubernetes 吗?我需要降级我的 minikube 版本吗?
您不需要下载旧版本的 minikube 来运行旧版本的 Kubernetes。您可以使用 --kubernetes-version
标志创建任何您想要的 Kubernetes 集群。
示例
minikube start --kubernetes-version=v1.15.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,可以暂停它,稍后再取消暂停
minikube pause
minikube 还有一个插件,可以在一段时间不活动后自动暂停 Kubernetes
minikube addons enable auto-pause
Docker 驱动:如何设置 minikube 的 cgroup 管理器?
对于非虚拟机(non-VM)和非 SSH 驱动,minikube 将尝试自动检测您系统的 cgroups 驱动/管理器,并相应地配置所有其他组件。对于虚拟机(VM)和 SSH 驱动,minikube 默认将使用 cgroupfs cgroups 驱动/管理器。要强制使用 systemd
cgroup 管理器,请运行
minikube start --force-systemd=true
如果我有一个使用虚拟机驱动(VM driver)的现有集群,如何使用 Docker 驱动运行 minikube?
首先请确保您的 Docker 服务正在运行。然后您需要选择以下方法之一:
(a) 删除现有集群并创建一个新集群
minikube delete
minikube start --driver=docker
或者,(b) 使用不同的配置文件名创建第二个集群
minikube start -p p1 --driver=docker
minikube 支持 IPv6 吗?
minikube 目前不支持 IPv6。但是,它已列入路线图。您也可以参考此开放问题。
如何在 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 分配最大资源?
将启动命令中的 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
很可能会失败。
对于中国用户而言,原因是由于中国大陆政府设置了 GFW 防火墙,阻止了从中国大陆访问 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.23.8
将告诉 minikube 从阿里云拉取 v1.23.8 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"