minikube v1.32.0 安装与启动

777 阅读5分钟

1. 环境信息

  • Windows 11
  • VMware Workstation Pro 17
  • Oracle Linux 9

2. 准备工作

# 更新系统
dnf -y update

# 安装 Docker 的依赖包
dnf install -y dnf-utils

# 添加 Docker 的仓库
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装 Docker
install docker-ce docker-ce-cli containerd.io

# 启动 Docker
systemctl start docker

# 开机自启动 Docker
systemctl enable docker

3. 下载minikube

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

4. 安装minikube

install minikube-linux-amd64 /usr/local/bin/minikube

验证

[root@dukui ~]# minikube version
minikube version: v1.32.0
commit: 8220a6eb95f0a4d75f7f2d7b14cef975f050512d

5. 启动minikube

minikub在启动时需要从gcr.ioregistry.k8s.io中拉取镜像,但在国内由于墙的限制,肯定拉取失败。但如果这些镜像都已经有了,大家直接将这些镜像拷贝至minikube cache目录中去,然后在启动minikube的过程中就直接使用缓存中的镜像而不会再去重新拉取镜像了。

5.1. 拷贝镜像

# 首先,进入 USER_HOME 目录
# USER_HOME 目录是什么?比如 C:\Users\dukui 和 /root
cd USER_HOME

# 然后,进入 .minikube/cache/images/amd64 目录
cd /root/.minikube/cache/images/amd64

# 最后,将 gcr.io 和 registry.k8s.io 镜像拷贝到该目录即可
# 一般该目录下是空的,如果有内容建议直接删除

验证

[root@dukui amd64]# ls -l -R -h
总用量 0
drwxr-xr-x. 3 root root  26 1125 18:14 gcr.io
drwxr-xr-x. 3 root root 183 1125 18:31 registry.k8s.io

./gcr.io:
总用量 0
drwxr-xr-x. 2 root root 36 1125 20:27 k8s-minikube

./gcr.io/k8s-minikube:
总用量 31M
-rw-r--r--. 1 root root 31M 11月 25 20:27 storage-provisioner_v5

./registry.k8s.io:
总用量 205M
drwxr-xr-x. 2 root root   48 1125 19:20 coredns
-rw-r--r--. 1 root root  99M 11月 25 18:31 etcd_3.5.9-0
-rw-r--r--. 1 root root  34M 11月 25 18:15 kube-apiserver_v1.28.3
-rw-r--r--. 1 root root  32M 11月 25 18:15 kube-controller-manager_v1.28.3
-rw-r--r--. 1 root root  24M 11月 25 18:16 kube-proxy_v1.28.3
-rw-r--r--. 1 root root  18M 11月 25 18:15 kube-scheduler_v1.28.3
-rw-r--r--. 1 root root 315K 11月 25 18:14 pause_3.9

./registry.k8s.io/coredns:
总用量 16M
-rw-r--r--. 1 root root 16M 11月 25 18:15 coredns_v1.10.1
-rw-r--r--. 1 root root   0 11月 25 19:20 k8s_v1.28.3

5.2. 拷贝kubeadmkubectlkubelet

kubeadmkubectlkubelet是三个二进制可执行文件,也可跳过本步骤,但是为了加快minikube的启动速度,建议拷贝。

[root@dukui amd64]# ls -l -R -h
总用量 0
drwxr-xr-x. 2 root root 51 11月 25 20:23 v1.28.3

./v1.28.3:
总用量 200M
-rwxr-xr-x. 1 root root  47M 11月 25 20:17 kubeadm
-rwxr-xr-x. 1 root root  48M 11月 25 20:17 kubectl
-rw-r--r--. 1 root root 106M 11月 25 20:23 kubelet

5.3. 启动

[root@dukui ~]# minikube start --force
* Oracle 9.3 上的 minikube v1.32.0
! 当提供 --force 参数时,minikube 将跳过各种验证,这可能会导致意外行为
* 根据现有的配置文件使用 docker 驱动程序
* The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
* 如果您在VM中运行 minikube,请考虑使用 --driver=none:
*   https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* 提示:要删除此 root 拥有的集群,请运行:sudo minikube delete
* 正在集群 minikube 中启动控制平面节点 minikube
* 正在拉取基础镜像 ...
* Restarting existing docker container for "minikube" ...
* 正在 Docker 24.0.7 中准备 Kubernetes v1.28.3…
* 配置 bridge CNI (Container Networking Interface) ...
* 正在验证 Kubernetes 组件...
  - 正在使用镜像 gcr.io/k8s-minikube/storage-provisioner:v5
* 启用插件: storage-provisioner, default-storageclass
* kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
* 完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间

验证

[root@dukui amd64]# kubectl get pods -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS      AGE
kube-system   coredns-5dd5756b68-r6t6j           1/1     Running   1 (67m ago)   73m
kube-system   etcd-minikube                      1/1     Running   1 (67m ago)   74m
kube-system   kube-apiserver-minikube            1/1     Running   1 (67m ago)   74m
kube-system   kube-controller-manager-minikube   1/1     Running   1 (67m ago)   74m
kube-system   kube-proxy-5xrcv                   1/1     Running   1 (67m ago)   73m
kube-system   kube-scheduler-minikube            1/1     Running   1 (67m ago)   74m
kube-system   storage-provisioner                1/1     Running   3 (66m ago)   74m

如果我们能翻墙,直接在Windows本地启动是非常省心的,当然需要首先安装Docker Desktop ,分享一下Windows本地启动过程。

C:\Users\dukui>minikube start
W1125 18:14:29.386470   23960 main.go:291] Unable to resolve the current Docker CLI context "default": context "default": context not found: open C:\Users\dukui.000.docker\contexts\meta\37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f\meta.json: The system cannot find the path specified.
* Microsoft Windows 11 Home China 10.0.22635.2771 Build 22635.2771 上的 minikube v1.32.0
* 自动选择 docker 驱动
* 使用具有 root 权限的 Docker Desktop 驱动程序
* 正在集群 minikube 中启动控制平面节点 minikube
* 正在拉取基础镜像 ...
    > gcr.io/k8s-minikube/kicbase...:  0 B [_______________________] ?% ? p/s ?! The image 'gcr.io/k8s-minikube/storage-provisioner:v5' was not found; unable to add it to cache.
    > gcr.io/k8s-minikube/kicbase...:  0 B [___________________] ?% ? p/s 300ms
    > index.docker.io/kicbase/sta...:  0 B [___________________] ?% ? p/s 700ms
    > gcr.io/k8s-minikube/kicbase...:  0 B [___________________] ?% ? p/s 300ms
    > index.docker.io/kicbase/sta...:  453.90 MiB / 453.90 MiB  100.00% 1.59 Mi
! minikube was unable to download gcr.io/k8s-minikube/kicbase:v0.0.42, but successfully downloaded docker.io/kicbase/stable:v0.0.42 as a fallback image
* Creating docker container (CPUs=2, Memory=8100MB) ...
* 正在 Docker 24.0.7 中准备 Kubernetes v1.28.3…
X 无法加载缓存的镜像:loading cached images: CreateFile C:\Users\dukui.000.minikube\cache\images\amd64\gcr.io\k8s-minikube\storage-provisioner_v5: The system cannot find the file specified.
    > kubectl.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubeadm.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubelet.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubeadm:  46.77 MiB / 46.77 MiB [----------] 100.00% 103.02 KiB p/s 7m45s
    > kubectl:  47.56 MiB / 47.56 MiB [----------] 100.00% 59.04 KiB p/s 13m45s
    > kubelet:  105.65 MiB / 105.65 MiB [--------] 100.00% 59.25 KiB p/s 30m26s
  - 正在生成证书和密钥...
  - 正在启动控制平面...
  - 配置 RBAC 规则 ...
* 配置 bridge CNI (Container Networking Interface) ...
* 正在验证 Kubernetes 组件...
  - 正在使用镜像 gcr.io/k8s-minikube/storage-provisioner:v5
* 启用插件: storage-provisioner, default-storageclass
* 完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间

其实gcr.ioregistry.k8s.io镜像和kubeadmkubectlkubelet三个二进制可执行文件都是来源于Windows本地!

6. 镜像及二进制执行文件下载链接

链接:pan.baidu.com/s/1fOlPqyCk…

提取码:9vc0