在向 k8s 迈出第一步的时候,你是否遇到了这样的错误:
Configuring RBAC rules ...| E0801 15:11:41.476443 26762 start.go:264] Unable to scale down deployment "coredns" in namespace "kube-system" to 1 replica: timed out waiting for the condition
Enabling 'default-storageclass' returned an error: running callbacks: [Error making standard the default storage class: Error listing StorageClasses: Get "https://192.168.49.2:8443/apis/storage.k8s.io/v1/storageclasses": dial tcp 192.168.49.2:8443: i/o timeout]
Exiting due to GUEST_START: wait 6m0s for node: wait for healthy API server: apiserver healthz never reported healthy: timed out waiting for the condition
Docker Desktop for Linux 与 Docker Engine 不同,Desktop 运行于虚拟机,下面是 Docker 文档的一些解释:
其实解决这个问题很简单,minikube 提供了多种 driver,你只需要在启动时指定一种 driver 就可以,不一定非要使用 docker 作为 minikube 的 driver。点击这里查看 minikube 支持的 driver。
比如,我们可以使用 qemu 来当做 minikube 的 driver:
$ minikube start --kubernetes-version=v1.23.3 --driver=qemu --image-mirror-country='cn'
最简单的方法就是安装 Docker Engine,并在 docker client 中将 context 切换到 Docker Engine。
首先清理所有文件和配置
$ minikube delete --purge --all
然后查看 Docker Context,找到 Docker Engine 的 Endpoint
$ docker context ls
NAME TYPE DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR default moby Current DOCKER_HOST based configuration unix:///var/run/docker.sock swarm desktop-linux * moby unix:///home/joseph/.docker/desktop/docker.sock
选择 default context
$ docker context use default
现在可以重启 minikube 之旅了
minikube start --kubernetes-version=v1.23.3 --driver=docker --image-mirror-country='cn'