提示:考虑到实际情况,这里介绍的主要是是镜像安装方法

如果网络正常:建议采用官方的安装方法,省去许多麻烦。

步骤:

  1. win10 powershell以管理员方式运行,并输入:
minikube.exe start --image-mirror-country=cn --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.8.0.iso --registry-mirror=https://xxxxxx.mirror.aliyuncs.com --vm-driver="hyperv"

注意,image-mirror和registry
这个语句我用的是ok的。

很多博客给的是类似这个:

如:https://galaxyyao.github.io/2020/01/22/%E5%AE%B9%E5%99%A8-14-%E5%9B%BD%E5%86%85Windows10%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85Minikube/

minikube start --vm-driver=hyperv --cpus=2 --memory=6g --image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers"

我试了一下,不好使。

下面是完整的minikube k8s安装过程,以windows系统的虚拟机hyperv为例

前置要求:

2 CPUs or more
2GB of free memory
20GB of free disk space
Internet connection
Container or virtual machine manager, such as: Docker, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation

由于本身docker就是运行在linux之上的,所以如果要在windows中进行测试,必须安装Linux环境如虚拟机,这里以hyper-v为例,主要是考虑到这是windows系统自带的,较为方便

网络正常(自行体会):

按照minikube官方教程安装:https://minikube.sigs.k8s.io/docs/start/

需要镜像:

windows

1.首先安装hyper-v,特别是windows家庭版是没有hyper-v的,只有专业版或者教育版才是有的

创建一个批处理文件,文件名无要求, 我起的是hyperv.bat

kubernetes怎么使用docker本地镜像 kubernetes 镜像_kubernetes


代码如下:

pushd "%~dp0"
 
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
 
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
 
del hyper-v.txt
 
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

以管理者运行该文件。

打开powershell,输入:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

打开powershell,输入systeminfo,如出现:

Hyper-V 要求:     已检测到虚拟机监控程序。将不显示 Hyper-V 所需的功能。

则说明安装成功。

2.然后安装minikube(目前这个还是可以正常下载的)
链接:minikube官方安装地址,选择适合自己系统的最新版本进行下载(不是最新版本对于镜像下载可能会有问题)

同样打开powershell,输入minikube version,如出现:

kubernetes怎么使用docker本地镜像 kubernetes 镜像_docker_02


即有版本号和commit ID,说明安装成功。

也就是https://minikube.sigs.k8s.io/docs/start/的第一步installation

3.然后安装k8s相关的文件
可以尝试以下两个命令

minikube start --image-mirror-country='cn'

如果该命令不成功,就按照上面的安装镜像的方法进行,即:

minikube.exe start --image-mirror-country=cn --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.8.0.iso --registry-mirror=https://xxxxxx.mirror.aliyuncs.com --vm-driver="hyperv"

默认配置为2cpu,4g内存,20g磁盘,可以自行设置

minikube 提供了非常多的配置参数,常用配置参数如下

--driver=*** 从1.5.0版本开始,Minikube缺省使用系统优选的驱动来创建Kubernetes本地环境,比如您已经安装过Docker环境,minikube 将使用 docker 驱动
--cpus=2: 为minikube虚拟机分配CPU核数
--memory=2048mb: 为minikube虚拟机分配内存数
--registry-mirror=*** 为了提升拉取Docker Hub镜像的稳定性,可以为 Docker daemon 配置镜像加速,参考阿里云镜像服务
--kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本

更多配置参数请参考 minikube help start,这样就创建了一个名为minikube的虚拟机:

kubernetes怎么使用docker本地镜像 kubernetes 镜像_kubernetes_03

很多博客里面建议需要额外创建新的虚拟交换机,但是我的实验结果是并不需要(至少如果只需要在集群内部进行访问节点),而且可能造成网络卡顿的问题。(非常卡顿)

4.打开Kubernetes控制台

输入:

minikube dashboard

可能要等一下,就就能够看到Kubernetes 的看板。

常见问题:

很多的问题都是网络的问题,如果遇到不是网络的问题,可以试试删除minikube,然后start minikube。
即:

minikube delete

然后

minikube start(网络正常按照这个,需要镜像还是上面的语句)

1.遇到the docker client must be run with elevated privileges to connect.:怎么解决

可以看这个:

Docker v20.10.5

In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.

原因是使用了 Linux containers 启动,需要 Hyper-V 服务支持。

解决办法:
在 Docker Desktop 托盘图标 Switch to windows containers。

或者这个:

首先以管理员身份运行,然后和上面类似也是进行container的切换

2. docker镜像拉取(pull)不下来怎么办?

涉及到docker的拉取镜像可以采用下面的语句

镜像处理:

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver:1.4

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver:1.4 k8s.gcr.io/echoserver:1.4

docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver:1.4

3. 遇到:run minikube start with --image-mirror-country=cn failed,或者Prompt panic: semver: Parse(v1.17.3): Invalid character(s) found in major number “v1”怎么解决?

如果遇到下面的问题:

Prompt panic: semver: Parse(v1.17.3): Invalid character(s) found in major number “v1”

首先看看你是否是没有设置好镜像,如果没问题的话,应该是minikube版本的问题。
参考:

https://github.com/kubernetes/minikube/issues/7052 是minikube的bug,更新到最新版本即可