minikube 结合阿里云镜像搭建本地开发测试环境

作者:HaoKe

作者地址: http://github.com/KeHaohaoke

我的同事写了一篇英文的博客,关于如何使用 minikube 搭建本地的 k8s 环境的。

我很喜欢这篇文章,链接在这里:minikube-k8s

该文章和本文并不是一对一的翻译的。有各自不同的角度去讲述,建议你去阅读一下该篇文章,会有不一样的收获。

相关背景: 在日常开发测试中,我们验证和k8s有关的功能的时候,并不需要生产环境规格的k8s集群。

比如(3 master+3 node),这种规格的集群,我们个人一般不具有这种配置,也没有必要为了本地测试开发的验证而去专门搭建这样的集群(除非有特殊需要)。

本文则介绍一种利用 minikube 来搭建 k8s 本地开发测试环境的方法。
本文是在 MacOS 并且是 Intel 芯片的机器上进行安装 minikube 的。

并且在安装中,指定了阿里云镜像,无须进行特别的上网方式的设置,不会有 gcr.io 下载慢或者无法下载而必须使用一些特殊的上网设置方法的问题。且由于镜像在国内,下载速度也很快。

概要:本文讲述了在 MacOS Intel 机器上:
使用 minikube 分别以 vmware 作为 driver 和使用 docker 作为 driver 来安装 one node 的 k8s。

minikube 安装准备

工欲善其事,必先利其器。我们先来下载 minikube:

shell
brew install minikube
如果你的 Mac 上没有安装 brew,请参考:Homebrew官网进行安装。

接下来,我们还要下载 kubectl:

shell
brew install kubectl

在 MacOS(intel 芯片)上,minikube 支持多种不同的 driver:

  • Docker
  • VirtualBox
  • VMWare Fusion
  • HyperKit

接下来,我们会采用两种安装方式:一种使用 VM: Vmware Fusion, 另外还有 Docker 两种方式来进行。

使用 VMWare Fusion 安装

在此之前,需要先在 MacOS 上安装好 VMWare Fusion,安装的步骤也比较简单,遵从 Vmware 的文档来就可以,请参照:vmware-mac-downloads

安装好 Vmware 之后,需要设置 path:

根据你使用的是 zsh 还是 bash,分别在 .zshrc 或者 .bashrc 里加上:(否则,进行下面的 minikube start 的时候,会报错,提示找不到 vmware)。

shell
export PATH=$PATH:"/Applications/Vware Fusion.app/Contents/Library"

当你在 Vmware 里安装了某个虚拟机,运行 vmrun list 命令会看到类似下面这样的输出。

其中,下面的输出中含有 minikube 是我在 minikube 已经运行之后使用这条命令的缘故。

shell
vmrun list

这条命令的输出如下:

shell
Total running VMs: 2
/Users/kehao/.minikube/machines/minikube/minikube.vmx
/System/Volumes/Data/DigitalResources/VirtualMachine/MyCentOS7.vmwarevm/MyCentOS7.vmx

安装和启动-vmware driver

shell
minikube start --driver=vmware --memory=2048 --cpus=2 --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'

特别说明:在这里,我使用了阿里云的镜像。如果没有缺省该参数,即不指定 image-repository 参数的话,会默认从gcr.io 去下载镜像,该地址由于一些网络原因,是会被 ban 掉的。

其实,也是有方法可以去 gcr.io 下载的,但这里就交给读者自己研究了。

但用指定阿里云的镜像的方法,会在下载速度上快很多,即使读者研究了方法去从 gcr.io 下载 image,其速度也不是从阿里云下载可比的。

作为开发测试环境,我们希望的是快速完成搭建并使用,倒腾具体的网络下载相关的配置可以放到闲余时间研究。

很快,就会看到安装且启动完毕:

minikube 结合阿里云镜像搭建本地开发测试环境_第1张图片
比较有趣的是,可以看到,minikube 使用了很多 emoji 表情表示了每个安装阶段的状态。这可能也是程序员可爱的一面,在其他的技术产品上,比如 github,也有很多 emoji 表情在使用,读者有兴趣可以自己去找找。

启动 dashboard

也是很简单的一条命令:

shell
minikube dashboard &
说明:加上&是为了保持后台启动,以免关掉了执行这个命令的 session 导致相关进程被杀掉,也可以说防止为了保持 dashboard 一直运行,不得不长期开着一个 session。

minikube 结合阿里云镜像搭建本地开发测试环境_第2张图片
这条命令会自动拉起浏览器打开上图所示链接,会看到 k8s 的 dashboard。

minikube 结合阿里云镜像搭建本地开发测试环境_第3张图片

使用 docker driver 安装

在更换 driver 之前,把原来的 minikube stop 并 delete 掉。

嗯,还是简单的一条命令。哈哈,其实是两条啦:

shell
minikube stop
shell
minikube delete

image.png
在使用 docker 作为 driver 之前,要确认 MacOS 上已经安装好了 docker desktop。

安装也很简单:

遵循这里的 guide 去做就 OK 了。macos-docker

在这里也去说明一下安装方法:

  1. 去 docker 官网的链接,找到你的机器对应的安装,点击下载。
    docker-desktop-install

minikube 结合阿里云镜像搭建本地开发测试环境_第4张图片

  1. 之后,就和安装其他的 MacOS 软件一样,都是拖拽安装的。

minikube 结合阿里云镜像搭建本地开发测试环境_第5张图片

如果有喜欢命令行安装的朋友,可以看这个链接 install-docker-desktop-from-command-line

安装完成之后,就可以启动 docker desktop。

Tips: 如果 Mac 配置不高,比如我的 Mac,买的比较早一些,可以在启动 docker desktop 之前,设置 docker desktop 里的内存小一点。

修改 docker desktop 的内存的步骤:在 MAC 右上角的状态栏找到 docker desktop->Preferences-> 按需修改内存和 CPU 的设置。

minikube 结合阿里云镜像搭建本地开发测试环境_第6张图片

  1. 启动了 docker desktop 之后,就可以用 docker driver 的方式用 minikube 来安装 k8s 了。

也很简单,就是一条命令:)

shell
minikube start --memory=2048 --cpus=2 --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'

minikube 结合阿里云镜像搭建本地开发测试环境_第7张图片

同使用 vmware driver 一样,我们 start 完成之后,需要启动 dashboard。

minikube 结合阿里云镜像搭建本地开发测试环境_第8张图片

同样也会自动拉起浏览器打开 dashboard 的 url。

minikube 结合阿里云镜像搭建本地开发测试环境_第9张图片

查看k8s

这就和普通的 k8s 没什么两样了, 使用相应的命令查看即可。

我在使用下面的命令获取 k8s 的 nodes 的时,运行的环境上只有 minikube,你运行的结果视你自己的环境,可能与下面的运行结果有所不同(可能不止一个 node)
shell
kubectl get nodes
NAME       STATUS   ROLES                  AGE   VERSION
minikube   Ready    control-plane,master   15m   v1.23.3

其他的 driver 的安装支持

在MacOS的darwin amd64(即 intel 芯片)上,还支持 VirtualBox 作为 driver 以及 HyperKit 作为 driver。

稍微需要注意的则是传参的时候,应该分别指定为--driver=virtualbox--driver=hyperkit,而不是用这两者的驼峰命名。

至于这两者对应的虚拟机的安装,读者可以自己尝试去安装并完成整个流程,自己动手去尝试。

你可能感兴趣的:(容器devops)