简介
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.
以上便是本文的全部内容,感谢您的阅读。