
minikube可以在macOS、Linux和Windows上快速搭建本地Kubernetes集群。minikube专注于帮助应用程序开发人员和新的Kubernetes用户快速构建Kubernetes环境。

0. ENV
Ubuntu Desktop 22.04 LTS(5.15.0-43-generic);
docker 20.10.17/containerd 1.6.6/runc 1.1.2;
minikube v1.26.1;
kubernetes 1.24.3/kubernetes 1.23.8/kubernetes 1.23.9。
将会使用minikube安装两套不同版本集群,并将其中一套V1.23.8升级为V1.23.9。
1. 基础环境准备
1.1 环境检查-系统版本查看
当前版本为Ubuntu 22.04 LTS
tt@ubd-2204:~$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 22.04 LTSRelease: 22.04Codename: jammy
1.2 环境检查-内核版本查看
当前内核版本为5.15.0-40-generic,后续将会升级到5.15.0-43-generic。
tt@ubd-2204:~$ uname -aLinux ubd-2204 5.15.0-40-generic #43-Ubuntu SMP Wed Jun 15 12:54:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
1.3 关闭交换分区
临时关闭:
tt@ubd-2204:~$ sudo swapoff -a
编辑fstab,注释掉相关行,开机不使用swap:
tt@ubd-2204:~$ grep swap etc/fstab#/dev/mapper/vgubuntu-swap_1 none swap sw 0 0
查看交换分区已为0,当前未挂载
tt@ubd-2204:~$ free -htotal used free shared buff/cache available内存:15Gi 1.1Gi 13Gi 34Mi 1.2Gi 14Gi交换:0B 0B 0B
1.4 安装浏览器(可选)
如果要使用minikube运行dashboard,或者通过浏览器运行验证试验,在则需要在minikube主机上安装浏览器,firefox或chrome均可。
安装火狐浏览器(浏览器二选一)
sudo apt install firefox #在线安装firefox #运行firefox浏览器
安装google浏览器稳定版(浏览器二选一)
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb #下载sudo dpkg -i google-chrome-stable_current_amd64.deb #安装google-chrome-stable #运行chrome浏览器
2. 容器选择
2.1 minikube支持的容器
当前Linux上支持的容器如下:
Docker - 基于容器(首选)
KVM2 - 基于虚拟机(首选)
VirtualBox - 虚拟机
QEMU - 虚拟机(实验性)
none - 裸机
Podman - 容器(实验性)
SSH - 远程 ssh
macOS、Windows支持的容器请参考:
https://minikube.sigs.k8s.io/docs/drivers/
2.2 选择容器
Linux运行minikube时,如果是裸机,可不选择使用容器。
参考官方建议,本次使用Docker中的containerd作为minikube首选的容器。
下面使用阿里云ubuntu镜像,作为安装docker加速:
# step 1: 安装必要的一些系统工具
sudo apt updatesudo apt -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE(社区版)
sudo apt-get -y updatesudo apt-get -y install docker-ce
如果要安装指定版本,
# 查看支持版本apt-cache madison docker-ce# 安装指定版本apt-get install docker-ce=<VERSION_STRING>
# Step 5: 查看docker运行状态
当前状态(running运)行,且开机(enabled)启动,使用containerd运行
tt@ubd-2204:~$ systemctl status docker● docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2022-08-05 15:06:42 CST; 35s agoTriggeredBy: ● docker.socketDocs: https://docs.docker.comMain PID: 6377 (dockerd)Tasks: 13Memory: 31.4MCPU: 532msCGroup: system.slice/docker.service└─6377 usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.430899566+08:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.430922828+08:00" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock <nil> 0 <nil>}] <nil> <nil>}" module=grpc8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.430934332+08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.499540102+08:00" level=info msg="Loading containers: start."8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.746561175+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.864997587+08:00" level=info msg="Loading containers: done."8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.935777742+08:00" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=overlay2 version=20.10.178月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.935953912+08:00" level=info msg="Daemon has completed initialization"8月 05 15:06:42 ubd-2204 systemd[1]: Started Docker Application Container Engine.8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.983125487+08:00" level=info msg="API listen on run/docker.sock"
如果需要删除docker-ce,执行remove操作
sudo apt remove docker-ce
# Step 6: 升级系统内核及软件版本[可选]
tt@ubd-2204:~$ sudo apt -y upgrade
系统软件包将会更新,时间可能较长,视机器性能、网速、资源等,可能持续数分钟至数小时。
重启系统:
sudo reboot
重启后,查看内核为5.15.0-43-generic:
tt@ubd-2204:~$ uname -aLinux ubd-2204 5.15.0-43-generic #46-Ubuntu SMP Tue Jul 12 10:30:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
3. 安装并启动minikube
3.1 下载minikube官方软件包
tt@ubd-2204:~$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed100 25.5M 100 25.5M 0 0 8682k 0 0:00:03 0:00:03 --:--:-- 8684k
3.2 安装minikube
tt@ubd-2204:~$ sudo dpkg -i minikube_latest_amd64.deb正在选中未选择的软件包 minikube。(正在读取数据库 ... 系统当前共安装有 183494 个文件和目录。)准备解压 minikube_latest_amd64.deb ...正在解压 minikube (1.26.1-0) ...正在设置 minikube (1.26.1-0) ...
3.3 设置docker为默认驱动(可选)
tt@ubd-2204:~$ minikube config set driver docker! These changes will take effect upon a minikube delete and then a minikube start
3.4 第一次启动minikube--报错
使用docker作为驱动时,不允许root用户启动minikube,以普通用户tt启动minikube。
tt@ubd-2204:~$ minikube start --driver=docker --container-runtime=containerd* Ubuntu 22.04 上的 minikube v1.26.1* 根据用户配置使用 docker 驱动程序X Exiting due to PROVIDER_DOCKER_NEWGRP: "docker version --format -" exit status 1: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix var/run/docker.sock: connect: permission denied* 建议:Add your user to the 'docker' group: 'sudo usermod -aG docker $USER && newgrp docker'* 文档:https://docs.docker.com/engine/install/linux-postinstall/
启动报错,提示需要将当前用户加入docker组。
3.5 将当前用户加入docker组
将当前用户加入docker组,不需要指定用户名,$USER变量可获取当前用户名
tt@ubd-2204:~$ sudo usermod -aG docker $USER && newgrp docker
查看当前用户信息,当前用户已加入id为998的docker组
tt@ubd-2204:~$ id用户id=1000(tt) 组id=998(docker) 组=998(docker),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),132(lxd),133(sambashare),1000(tt)
3.6 第二次启动minikube--成功
1) 默认使用官方资源启动minikube,启动成功(二选一)
tt@ubd-2204:~$ minikube start --driver=docker --container-runtime=containerd* Ubuntu 22.04 上的 minikube v1.26.1* 根据用户配置使用 docker 驱动程序* Using Docker driver with root privileges* Starting control plane node minikube in cluster minikube* Pulling base image ...* Downloading Kubernetes v1.24.3 preload ... > preloaded-images-k8s-v18-v1...: 426.91 MiB 426.91 MiB 100.00% 6.13 Mi > index.docker.io/kicbase/sta...: 386.60 MiB 386.61 MiB 100.00% 4.76 Mi > index.docker.io/kicbase/sta...: 0 B [___________________] ?% ? p/s 1m13s! minikube was unable to download gcr.io/k8s-minikube/kicbase:v0.0.33, but successfully downloaded docker.io/kicbase/stable:v0.0.33 as a fallback image* Creating docker container (CPUs=2, Memory=3900MB) ...! This container is having trouble accessing https://k8s.gcr.io* To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/* 正在 containerd 1.6.6 中准备 Kubernetes v1.24.3… - Generating certificates and keys ... - Booting up control plane ... - Configuring RBAC rules ...* Configuring CNI (Container Networking Interface) ...* Verifying Kubernetes components... - Using image gcr.io/k8s-minikube/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
2) 以国内镜像启动(二选一,建议)
tt@ubd-2204:~$ minikube start --driver=docker --container-runtime=containerd --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'* Ubuntu 22.04 上的 minikube v1.26.1* 根据用户配置使用 docker 驱动程序* 正在使用镜像存储库 registry.cn-hangzhou.aliyuncs.com/google_containers* Using Docker driver with root privileges* Starting control plane node minikube in cluster minikube* Pulling base image ...> registry.cn-hangzhou.aliyun...: 386.60 MiB 386.61 MiB 100.00% 10.90 M> registry.cn-hangzhou.aliyun...: 0 B [_____________________] ?% ? p/s 26s* Creating docker container (CPUs=2, Memory=3900MB) ...* 正在 containerd 1.6.6 中准备 Kubernetes v1.24.3…- Generating certificates and keys ...- Booting up control plane ...- Configuring RBAC rules ...* Configuring 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
3) 查看安装状态
tt@ubd-2204:~$ minikube statusminikubetype: Control Planehost: Runningkubelet: Runningapiserver: Runningkubeconfig: Configured
4) 查看配置信息
tt@ubd-2204:~$ minikube profile list|----------|-----------|------------|--------------|------|---------|---------|-------|--------|| Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active ||----------|-----------|------------|--------------|------|---------|---------|-------|--------|| minikube | docker | containerd | 192.168.49.2 | 8443 | v1.24.3 | Running | 1 | * ||----------|-----------|------------|--------------|------|---------|---------|-------|--------|
5) 可能存在的问题
如果环境多次操作,可能会提示minikube不存在:
tt@ubd-2204:~$ minikube start --driver=docker --container-runtime=containerd-bash: usr/local/bin/minikube: 没有那个文件或目录
解决方法:
移除已安装的minikube
tt@ubd-2204:~$ sudo apt remove minikube
重新安装minikube
tt@ubd-2204:~$ sudo dpkg -i minikube_latest_amd64.deb
再次启动,无报错:
tt@ubd-2204:~$ minikube start --driver=docker --container-runtime=containerd
4. 和集群交互
如果已单独安装了kubelet,可查看当前已有pod:
kubectl get po -A
如果没有单独安装kubectl,则会提示未发现kubectl:
tt@ubd-2204:~$ kubectl get po -ACommand 'kubectl' not found, but can be installed with:
可以单独安装kubectl工具,也可使用minikube安装合适的kubectl(本次选用该方法):
tt@ubd-2204:~$ minikube kubectl -- get pods -A> kubectl.sha256: 64 B 64 B [----------------------] 100.00% ? p/s 100ms> kubectl: 43.59 MiB 43.59 MiB [-------------] 100.00% 6.93 MiB p/s 6.5sNAMESPACE NAME READY STATUS RESTARTS AGEkube-system coredns-6d4b75cb6d-w728k 1/1 Running 0 6m50skube-system etcd-minikube 1/1 Running 0 7m2skube-system kindnet-5gvtx 1/1 Running 0 6m50skube-system kube-apiserver-minikube 1/1 Running 0 7m2skube-system kube-controller-manager-minikube 1/1 Running 0 7m2skube-system kube-proxy-nvqzt 1/1 Running 0 6m50skube-system kube-scheduler-minikube 1/1 Running 0 7m2skube-system storage-provisioner 1/1 Running 0 7m
配置minikube kubectl别名,方便操作:
当前会话临时设置别名:
alias kubectl="minikube kubectl --"
当前用户永久设置别名:
添加别名配置:
tee -a ~/.bashrc << EOFalias kubectl="minikube kubectl --"EOF
使配置生效:
source .bashrc
5. dashboard启用
minikube捆绑了Kubernetes Dashboard,可以轻松适应新环境。
启用dashboard(当前窗口关闭,dashboard关闭):
tt@ubd-2204:~$ minikube dashboard* 正在验证 dashboard 运行情况 ...* Launching proxy ...* 正在验证 proxy 运行状况 ...* Opening http://127.0.0.1:45251/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser..
此时会弹出浏览器,打开dashboard页面:

运行dashboard前需要安装浏览器,请参考上述章节“1.4安装浏览器”,安装firefox或chrome。
未安装浏览器报错参考:
tt@ubd-2204:~$ minikube dashboard* 正在开启 dashboard ...- Using image kubernetesui/dashboard:v2.6.0- Using image kubernetesui/metrics-scraper:v1.0.8* 正在验证 dashboard 运行情况 ...* Launching proxy ...* 正在验证 proxy 运行状况 ...* Opening http://127.0.0.1:41983/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser.../usr/bin/xdg-open: 882: www-browser: not found/usr/bin/xdg-open: 882: links2: not found/usr/bin/xdg-open: 882: elinks: not found/usr/bin/xdg-open: 882: links: not found/usr/bin/xdg-open: 882: lynx: not found/usr/bin/xdg-open: 882: w3m: not foundxdg-open: no method available for opening 'http://127.0.0.1:41983/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/'X Exiting due to HOST_BROWSER: failed to open browser: exit status 3
6. 部署应用
6.1 创建1个示例deployment并在8080端口暴露
# 创建名为hello-minikube的示例deployment
tt@ubd-2204:~$ kubectl create deployment hello-minikube --image=registry.aliyuncs.com/google_containers/echoserver:1.4deployment.apps/hello-minikube created
# 将deployment的8080端口暴露
tt@ubd-2204:~$ kubectl expose deployment hello-minikube --type=NodePort --port=8080service/hello-minikube exposed
# 当前pod已经运行
tt@ubd-2204:~$ kubectl get podNAME READY STATUS RESTARTS AGEhello-minikube-7f7685bd6-lmtlz 1/1 Running 0 2m12s
# 服务已经创建
tt@ubd-2204:~$ kubectl get services hello-minikubeNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEhello-minikube NodePort 10.104.76.124 <none> 8080:30715/TCP 64s
6.2 使用minikube通过浏览器可以简单访问service
通过浏览器访问service:
tt@ubd-2204:~$ minikube service hello-minikube|-----------|----------------|-------------|---------------------------|| NAMESPACE | NAME | TARGET PORT | URL ||-----------|----------------|-------------|---------------------------|| default | hello-minikube | 8080 | http://192.168.49.2:30715 ||-----------|----------------|-------------|---------------------------|* 正通过默认浏览器打开服务 default/hello-minikube...
此时minikube会通过默认浏览器会打开应用:

查看服务信息:
tt@ubd-2204:~$ minikube service hello-minikube --urlhttp://192.168.49.2:30715
6.3 转发到pod的外部端口进行访问
将内部端口映射到7080端口(当前窗口关闭,端口映射消失):
tt@ubd-2204:~$ kubectl port-forward service/hello-minikube 7080:8080Forwarding from 127.0.0.1:7080 -> 8080Forwarding from [::1]:7080 -> 8080
通过浏览器使用7080端口访问应用:
http://localhost:7080/

能够在应用程序输出中看到来自 nginx 的请求元数据,例如 CLIENT VALUES、SERVER VALUES、HEADERS RECEIVED 和 BODY。尝试更改请求的路径并观察 CLIENT VALUES 的变化。同样,可以对其执行 POST 请求并观察输出的 BODY 部分中显示的正文。
6.4 负载均衡deployments
使用“minikube tunnel”命令访问负载均衡deployment,下面是一个示例。
使用阿里云的echoserver V1.4镜像创建一个负载均衡deployment:
tt@ubd-2204:~$ kubectl create deployment balanced --image=registry.aliyuncs.com/google_containers/echoserver:1.4deployment.apps/balanced created
查看balanced-xxx-xxx的pod已经创建:
tt@ubd-2204:~$ kubectl get podNAME READY STATUS RESTARTS AGEbalanced-76ff8f5ffc-b29cv 1/1 Running 0 8shello-minikube-7f7685bd6-2ghxb 1/1 Running 0 10m
暴露负载均衡到8080端口:
tt@ubd-2204:~$ kubectl expose deployment balanced --type=LoadBalancer --port=8080service/balanced exposed
在另一个窗口中,启动tunnel为“balanced” deployment创建可路由IP(当前窗口关闭,路由消失):
tt@ubd-2204:~$ minikube tunnelStatus:machine: minikubepid: 29502route: 10.96.0.0/12 -> 192.168.49.2minikube: Runningservices: [balanced]errors:minikube: no errorsrouter: no errorsloadbalancer emulator: no errors...
要查找路由IP,运行此命令并检查EXTERNAL-IP列:
tt@ubd-2204:~$ kubectl get services balancedNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEbalanced LoadBalancer 10.97.183.118 10.97.183.118 8080:30828/TCP 2m6s
deployment通过<EXTERNAL-IP>:8080可以访问,如:
http://10.97.183.118:8080

7. 管理集群
7.1 暂停Kubernetes而不影响已部署的应用
tt@ubd-2204:~$ minikube pause* Pausing node minikube ...* Paused 10 containers in: kube-system, kubernetes-dashboard, storage-gluster, istio-operator
7.2 取消实例暂停
tt@ubd-2204:~$ minikube unpause* Unpausing node minikube ...* Unpaused 10 containers in: kube-system, kubernetes-dashboard, storage-gluster, istio-operator
7.3 暂停集群
tt@ubd-2204:~$ minikube stop* Stopping node "minikube" ...* 正在通过 SSH 关闭“minikube”…* 1 node stopped.
7.4 增加默认的内存限制到16G(需要重启)
tt@ubd-2204:~$ minikube config set memory 16384! These changes will take effect upon a minikube delete and then a minikube start
7.5 浏览并安装Kubernetes服务目录
1) 浏览易于安装的Kubernetes服务目录
tt@ubd-2204:~$ minikube addons list|-----------------------------|----------|--------------|--------------------------------|| ADDON NAME | PROFILE | STATUS | MAINTAINER ||-----------------------------|----------|--------------|--------------------------------|| ambassador | minikube | disabled | 3rd party (Ambassador) || auto-pause | minikube | disabled | Google || csi-hostpath-driver | minikube | disabled | Kubernetes || dashboard | minikube | enabled √ | Kubernetes || default-storageclass | minikube | enabled √ | Kubernetes || efk | minikube | disabled | 3rd party (Elastic) || freshpod | minikube | disabled | Google || gcp-auth | minikube | disabled | Google || gvisor | minikube | disabled | Google || headlamp | minikube | disabled | 3rd party (kinvolk.io) || helm-tiller | minikube | disabled | 3rd party (Helm) || inaccel | minikube | disabled | 3rd party (InAccel || | | | [info@inaccel.com]) || ingress | minikube | disabled | Kubernetes || ingress-dns | minikube | disabled | Google || istio | minikube | disabled | 3rd party (Istio) || istio-provisioner | minikube | disabled | 3rd party (Istio) || kong | minikube | disabled | 3rd party (Kong HQ) || kubevirt | minikube | disabled | 3rd party (KubeVirt) || logviewer | minikube | disabled | 3rd party (unknown) || metallb | minikube | disabled | 3rd party (MetalLB) || metrics-server | minikube | disabled | Kubernetes || nvidia-driver-installer | minikube | disabled | Google || nvidia-gpu-device-plugin | minikube | disabled | 3rd party (Nvidia) || olm | minikube | disabled | 3rd party (Operator Framework) || pod-security-policy | minikube | disabled | 3rd party (unknown) || portainer | minikube | disabled | 3rd party (Portainer.io) || registry | minikube | disabled | Google || registry-aliases | minikube | disabled | 3rd party (unknown) || registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) || storage-provisioner | minikube | enabled √ | Google || storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) || volumesnapshots | minikube | disabled | Kubernetes ||-----------------------------|----------|--------------|--------------------------------|
2) 开启Addon组件,如开启ingress
tt@ubd-2204:~$ minikube addons enable ingress* ingress is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub.You can view the list of minikube maintainers at: https://github.com/kubernetes/minikube/blob/master/OWNERS- Using image registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.2.1- Using image registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1- Using image registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1* Verifying ingress addon...* 启动 'ingress' 插件
因minikube start时使用了阿里云镜像,此处安装imgress默认会优先使用阿里云镜像。
7.6 创建指定版本的多套集群
1) 使用Kubernetes老版本版本创建并运行第二个集群
tt@ubd-2204:~$ minikube start -p rundba --kubernetes-version=v1.23.8 --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'* Ubuntu 22.04 上的 [rundba] minikube v1.26.1* 根据用户配置使用 docker 驱动程序* 正在使用镜像存储库 registry.cn-hangzhou.aliyuncs.com/google_containers* Using Docker driver with root privileges* Starting control plane node rundba in cluster rundba* Pulling base image ...* Creating docker container (CPUs=2, Memory=3900MB) ...* 正在 Docker 20.10.17 中准备 Kubernetes v1.23.8…- Generating certificates and keys ...- Booting up control plane ...- Configuring RBAC rules ...* 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 "rundba" cluster and "default" namespace by default
安装多套集群时,可指定版本进行相应测试,本次指定版本为v1.23.8,集群名称rundba,本次同样使用本地(国内)镜像。
2) 查看当前所有集群
tt@ubd-2204:~$ minikube profile list|----------|-----------|------------|--------------|------|---------|---------|-------|--------|| Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active ||----------|-----------|------------|--------------|------|---------|---------|-------|--------|| minikube | docker | containerd | 192.168.49.2 | 8443 | v1.24.3 | Running | 1 | * || rundba | docker | docker | 192.168.67.2 | 8443 | v1.23.8 | Running | 1 | ||----------|-----------|------------|--------------|------|---------|---------|-------|--------|
当前共两套集群,minikube和rundba,minikube使用containerd,而rundba使用docker...
3) 删除集群
删除指定(rundba)集群:
minikube delete -p rundba
注:
如果有多套minikube集群,期望对指定名称集群操作时,需要使用-p参数。
如对rundba集群启动:
minikube start -p rundba,多集群等其它命令均可参考尝试。
删除所有minikube集群:
minikube delete --all
7.7 升级集群kubernetes版本
1) 升级rundba集群从v1.23.8到v1.23.9
tt@ubd-2204:~$ minikube start -p rundba --kubernetes-version=v1.23.9* Ubuntu 22.04 上的 [rundba] minikube v1.26.1* Kubernetes 1.24.3 is now available. If you would like to upgrade, specify: --kubernetes-version=v1.24.3* 根据现有的配置文件使用 docker 驱动程序* Starting control plane node rundba in cluster rundba* Pulling base image ...* Updating the running docker "rundba" container ...> kubectl.sha256: 64 B 64 B [-------------------------] 100.00% ? p/s 0s \> kubelet: 118.43 MiB / 118.43 MiB [-----------] 100.00% 10.02 MiB p/s 12s* 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 "rundba" cluster and "default" namespace by default
2) 查看升级后的版本,rundba已经变为v1.23.9
tt@ubd-2204:~$ minikube profile list|----------|-----------|------------|--------------|------|---------|---------|-------|--------|| Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active ||----------|-----------|------------|--------------|------|---------|---------|-------|--------|| minikube | docker | containerd | 192.168.49.2 | 8443 | v1.24.3 | Running | 1 | * || rundba | docker | docker | 192.168.67.2 | 8443 | v1.23.9 | Running | 1 | ||----------|-----------|------------|--------------|------|---------|---------|-------|--------|
7.8 登录minikube VM
tt@ubd-2204:~$ minikube sshLast login: Sat Aug 6 03:04:18 2022 from 192.168.49.1
7.9 查看更多帮助
minikube -h | helpminikube help startminikube config -h
8. 参考
https://minikube.sigs.k8s.io/docs/
https://minikube.sigs.k8s.io/docs/drivers/
https://kubernetes.io/docs/tutorials/hello-minikube/
https://github.com/AliyunContainerService/minikube/wiki
-- 完 --
更多精彩,敬请期待
不足之处,还望抛转。
作者:王坤,微信公众号:rundba,欢迎转载,转载请注明出处。
如需公众号转发,请联系wx:landnow。

往期推荐





