minikube使用技巧

837 阅读3分钟
  1. 拉取私有镜像

如果再minikube拉取私有镜像失败,我们可以通过在宿主机上把镜像先来去下来,然后使用下面的命令来讲镜像加载到Minikube里面去,这样在镜像拉取策略为IfNotPresent时,就可以正常使用我们的minikbe部署应用了

minikube image load xx.xx.xx.xx:xxxx/projectName/dockerize:tag
  1. 将宿主机上的文件目录挂载到minikbue里面

有一些需求需要使用宿主机上的文件,但是,minikube无法访问到宿主机的目录,那么可以先将宿主机上的目录挂载到minikbue里面,

minikube mount /tmp/storage-demo:/tmp/storage-demo
  1. 使用driver=docker的minikube无法使用ingress

可以在minikube delete 删除minikube集群后,重新start minikube 时,--driver="hyperkit",这种方式启动的minikube,就可以启动ingress了,启用命令为 minikube addons enable ingress

使用minikube addons list 可以查看启动了哪些组件

4.删除镜像

如果你在使用minikube image rm imageName:tag删除镜像的时候,发现该命令并没有删除镜像,那么就要检查一下是否还有使用该镜像的容器存在,如果有,删除后,再重新尝试一下该命令即可生效,而不是什么minikube的bug.可留意一下

5.如何在minikube 中使用Ingress

这里有几个点需要注意的,其一,minikube如果使用docker作为driver的配置项,那么是无法使用Ingress的,倒不是说无法使用minikube addons enable ingress.你当然可以是使用它来进行启用ingress,但是无法访问创建的ingress,因为不在同一个网段,无法连接。

此时就是需要使用其他的驱动配置项,但是使用其他的驱动配置项,你需要删除minikube 集群,minikube delete --all,然后在重新安装minikube ,minikube start --driver='hyperkit'.

如果在这种情况下,安装失败,那么,你需要指定Minikube的安装版本和kubernetes的安装版本,可能最新版本的1.24.1无法使用。重试很过次也无法安装成功。

我的测试环境为macos

minikube version

minikube version: v1.26.0

commit: f4b412861bb746be73053c9f6d2895f12cf78565

kubernetes 的版本使用的是v1.23.6

kubectl version
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.

Client Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.1", GitCommit:"3ddd0f45aa91e2f30c70734b175631bec5b5825a", GitTreeState:"clean", BuildDate:"2022-05-24T12:26:19Z", GoVersion:"go1.18.2", Compiler:"gc", Platform:"darwin/amd64"}

Kustomize Version: v4.5.4

Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.6", GitCommit:"ad3338546da947756e8a88aa6822e9c11e7eac22", GitTreeState:"clean", BuildDate:"2022-04-14T08:43:11Z", GoVersion:"go1.17.9", Compiler:"gc", Platform:"linux/amd64"}

此时安装addons中的ingress是可以成功的,并且测试用的ingress也可以访问

minikube addons list

|-----------------------------|----------|--------------|--------------------------------|

|         ADDON NAME          | PROFILE  |    STATUS    |           MAINTAINER           |

|-----------------------------|----------|--------------|--------------------------------|

| ambassador                  | minikube | disabled     | 3rd party (Ambassador)         |

| auto-pause                  | minikube | disabled     | Google                         |

| csi-hostpath-driver         | minikube | enabled ✅   | 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     | kinvolk.io                     |

| helm-tiller                 | minikube | disabled     | 3rd party (Helm)               |

| inaccel                     | minikube | disabled     | InAccel <info@inaccel.com>     |

| ingress                     | minikube | enabled ✅   | 3rd party (unknown)            |

| ingress-dns                 | minikube | enabled ✅   | 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 | enabled ✅   | 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     | 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 (unknown)            |

| volumesnapshots             | minikube | enabled ✅   | Kubernetes                     |

|-----------------------------|----------|--------------|--------------------------------

测试项目我放在了github上ingress-demo,大家可以自行测试

image.png