Henry
发布于 2025-02-21 / 121 阅读
0
0

Minikube - 安装

简介

Minikube 安装笔记。

前置信息

  • Linux pega-minikube-poc 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux
  • curl 已安装
  • Docker 已安装 【安装参考】,也可采用其他容器虚拟化组件,请自行选择

详细步骤

官方参考文档

第一步: 下载 debian minikube 安装包

root@pega-minikube-poc:~# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 37.0M  100 37.0M    0     0  3063k      0  0:00:12  0:00:12 --:--:-- 4255k

第二步: 安装 minikube

root@pega-minikube-poc:~# dpkg -i minikube_latest_amd64.deb 
Selecting previously unselected package minikube.
(Reading database ... 33392 files and directories currently installed.)
Preparing to unpack minikube_latest_amd64.deb ...
Unpacking minikube (1.35.0-0) ...
Setting up minikube (1.35.0-0) ...

第三步: 切换到非 root 用户启动集群 (minikueb 不推荐使用 root 用户来运行集群)【如遇报错请下拉查看解决方案】

Note: 以下为解决所有报错后优化指令,官方默认指令为: minikube start

  • --image-repository : 指定 k8s 仓库
  • --base-image: 指定 base image
  • --registry-mirror: 指定 docker 镜像仓库
  • --cpus: 指定 cpu 个数
  • --memory: 指定内存
myserver@pega-minikube-poc:~$ minikube start --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --base-image=kicbase/stable:v0.0.46 --registry-mirror=https://docker.hpcloud.cloud,https://docker.m.daocloud.io,https://docker.unsee.tech,https://docker.1panel.live,http://mirrors.ustc.edu.cn,https://docker.chenby.cn,http://hub-mirror.c.163.com,https://docker.mirrors.ustc.edu.cn,https://registry.docker-cn.com,https://dockerhub.azk8s.cn,https://mirror.ccs.tencentyun.com,https://registry.cn-hangzhou.aliyuncs.com,https://hub.uuuadc.top --cpus='no-limit' --memory='max'

😄  minikube v1.35.0 on Debian 12.4 (kvm/amd64)
✨  Automatically selected the docker driver
✅  Using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
📌  Using Docker driver with root privileges
👍  Starting "minikube" primary control-plane node in "minikube" cluster
🚜  Pulling base image v0.0.46 ...
🔥  Creating docker container (CPUs=2, Memory=2400MB) ...
🐳  Preparing Kubernetes v1.32.0 on Docker 27.4.1 ...
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔗  Configuring bridge CNI (Container Networking Interface) ...
🔎  Verifying Kubernetes components...
    ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5
🌟  Enabled addons: storage-provisioner, default-storageclass
💡  kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

Issue 1:  如未安装 Docker等容器化应用程序,则会报错

root@pega-minikube-poc:~# minikube start
😄  minikube v1.35.0 on Debian 12.4 (kvm/amd64)
👎  Unable to pick a default driver. Here is what was considered, in preference order:
💡  Alternatively you could install one of these drivers:
    ▪ docker: Not installed: exec: "docker": executable file not found in $PATH
    ▪ kvm2: Not installed: exec: "virsh": executable file not found in $PATH
    ▪ podman: Not installed: exec: "podman": executable file not found in $PATH
    ▪ qemu2: Not installed: exec: "qemu-system-x86_64": executable file not found in $PATH
    ▪ virtualbox: Not installed: unable to find VBoxManage in $PATH

❌  Exiting due to DRV_NOT_DETECTED: No possible driver was detected. Try specifying --driver, or see https://minikube.sigs.k8s.io/docs/start/

Issue 2: 如 Docker 是使用 root 权限执行则会报错, 【Docker - 配置非 root 用户运行

root@pega-minikube-poc:~# minikube start
😄  minikube v1.35.0 on Debian 12.4 (kvm/amd64)
✨  Automatically selected the docker driver. Other choices: none, ssh
🛑  The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
💡  If you are running minikube within a VM, consider using --driver=none:
📘    https://minikube.sigs.k8s.io/docs/reference/drivers/none/

❌  Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.

Issue 3:  如拉取容器失败,需启动 minikube时指定国内镜像源和配置Docker国内镜像源 【Docker - 配置国内镜像源

配置 k8s image-repository,使用--image-repository参数

阿里云镜像源: --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers 
华为云镜像源: --image-repository=swr.cn-east-2.myhuaweicloud.com

配置 docker mirror,使用--registry-mirror 参数

--registry-mirror=https://docker.hpcloud.cloud,https://docker.m.daocloud.io,https://docker.unsee.tech,https://docker.1panel.live,http://mirrors.ustc.edu.cn,https://docker.chenby.cn,http://hub-mirror.c.163.com,https://docker.mirrors.ustc.edu.cn,https://registry.docker-cn.com,https://dockerhub.azk8s.cn,https://mirror.ccs.tencentyun.com,https://registry.cn-hangzhou.aliyuncs.com,https://hub.uuuadc.top

Issue 4:  如果拉取 base 镜像报错,例如在 docker 镜像仓库找不到对应的镜像,github 上下载又非常慢,可通过启动时指定base 镜像的方式来启动

Note: docker hub 镜像仓库的 base 镜像名字更新为了: kicbase/stable


E0219 09:55:41.156990    3496 cache.go:222] Error downloading kic artifacts:  failed to download kic base image or any fallback image
🔥  Creating docker container (CPUs=2, Memory=2400MB) ...
🤦  StartHost failed, but will try again: creating host: create: creating: setting up container node: preparing volume for minikube container: docker run --rm --name minikube-preload-sidecar --label created_by.minikube.sigs.k8s.io=true --label name.minikube.sigs.k8s.io=minikube --entrypoint /usr/bin/test -v minikube:/var gcr.io/k8s-minikube/kicbase:v0.0.46@sha256:fd2d445ddcc33ebc5c6b68a17e6219ea207ce63c005095ea1525296da2d1a279 -d /var/lib: exit status 125
stdout:

stderr:
Unable to find image 'gcr.io/k8s-minikube/kicbase:v0.0.46@sha256:fd2d445ddcc33ebc5c6b68a17e6219ea207ce63c005095ea1525296da2d1a279' locally
docker: Error response from daemon: Get "https://gcr.io/v2/": dial tcp 74.125.197.82:443: i/o timeout.
myserver@pega-minikube-poc:~$ minikube start --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
😄  minikube v1.35.0 on Debian 12.4 (kvm/amd64)
✨  Automatically selected the docker driver
✅  Using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
📌  Using Docker driver with root privileges
👍  Starting "minikube" primary control-plane node in "minikube" cluster
🚜  Pulling base image v0.0.46 ...
❗  minikube cannot pull kicbase image from any docker registry, and is trying to download kicbase tarball from github release page via HTTP.
❗  It's very likely that you have an internet issue. Please ensure that you can access the internet at least via HTTP, directly or with proxy. Currently your proxy configure is:

    > kicbase-v0.0.46-amd64.tar:  1.07 GiB / 1.23 GiB  87.58% 26 B p/s ETA 1734

替换 minikube 启动指令,指定 base 镜像

myserver@pega-minikube-poc: docker pull kicbase/stable:v0.0.46
myserver@pega-minikube-poc: minikube start --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --base-image=kicbase/stable:v0.0.46

可选 - 第四步: 配置和使用 kubectl 指令 (临时配置)

myserver@pega-minikube-poc:~$ minikube kubectl -- get pods -A
    > kubectl.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubectl:  54.67 MiB / 54.67 MiB [-----------] 100.00% 29.97 KiB p/s 31m8s
NAMESPACE     NAME                               READY   STATUS    RESTARTS      AGE
kube-system   coredns-76fccbbb6b-zpbl7           1/1     Running   0             32m
kube-system   etcd-minikube                      1/1     Running   0             32m
kube-system   kube-apiserver-minikube            1/1     Running   0             32m
kube-system   kube-controller-manager-minikube   1/1     Running   0             32m
kube-system   kube-proxy-5knvc                   1/1     Running   0             32m
kube-system   kube-scheduler-minikube            1/1     Running   0             32m
kube-system   storage-provisioner                1/1     Running   1 (32m ago)   32m

可选 - 第五步:  简化 minikube kubectl 为 kubectl

myserver@pega-minikube-poc:~$ alias kubectl="minikube kubectl --"

验证配置结果

myserver@pega-minikube-poc:~$ kubectl get pods -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS      AGE
kube-system   coredns-76fccbbb6b-zpbl7           1/1     Running   0             35m
kube-system   etcd-minikube                      1/1     Running   0             35m
kube-system   kube-apiserver-minikube            1/1     Running   0             35m
kube-system   kube-controller-manager-minikube   1/1     Running   0             35m
kube-system   kube-proxy-5knvc                   1/1     Running   0             35m
kube-system   kube-scheduler-minikube            1/1     Running   0             35m
kube-system   storage-provisioner                1/1     Running   1 (35m ago)   35m

可选 - 第六步: 启用和访问minikube集群中运行的Kubernetes仪表板

myserver@pega-minikube-poc:~$ minikube dashboard
🔌  Enabling dashboard ...
    ▪ Using image docker.io/kubernetesui/metrics-scraper:v1.0.8
    ▪ Using image docker.io/kubernetesui/dashboard:v2.7.0
💡  Some dashboard features require the metrics-server addon. To enable all features please run:

        minikube addons enable metrics-server

🤔  Verifying dashboard health ...
🚀  Launching proxy ...
🤔  Verifying proxy health ...
🎉  Opening http://127.0.0.1:46397/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
👉  http://127.0.0.1:46397/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

在浏览器中输入返回的 url 可直接访问 dashboard 

附录

  • 移除Minukube集群
myserver@pega-minikube-poc:~$ minikube delete
🔥  Deleting "minikube" in docker ...
🔥  Removing /home/myserver/.minikube/machines/minikube ...
💀  Removed all traces of the "minikube" cluster.

以上便是本文的全部内容,感谢您的阅读。



评论