Minikube入门介绍

在云原生应用的开发中,离不开在开发和测试时可以使用的 Kubernetes 。Minikube 是一个常用的在本地运行的 Kubernetes,在开发和测试中非常实用。本文将介绍 Minikube 的基本用法。

Minikube 的安装很简单。在 Windows 上有安装包,macOS 上直接使用 Homebrew 安装即可,Linux 上可以直接下载二进制文件、Debian 包或 RPM 包。安装文件都可以从 GitHub 上下载。

安装完 Minikube 之后,使用 minikube start 命令可以直接启动 Kubernetes。

启动Minikube

Minikube 可以运行在容器和虚拟机中,也可以直接运行。前两种情况需要特定的软件的支持,称为驱动器。下表给出了不同的操作系统上,Minikube 支持的驱动器的类型。其中两个对勾表示推荐使用,一个对勾表示可以使用。Minikube 会根据当前操作系统的状态,自动选择最适合的驱动器。如果没有的话,会提示你安装。从表中可以看到,Docker在3个操作系统中都是推荐使用的,因此只需要安装了 Docker,其他的就都好办了。通过 --driver 参数可以切换不同的驱动器。比如 minikube start --driver=docker 使用 Docker 作为驱动器。

Minikube驱动器

在运行 Minikube 时,一个经常遇到的问题是资源不足,导致 Minikube 运行很慢。可以通过 minikube config 来设置CPU核数和内存大小。图中的命令把CPU的核数设置为 3,而内存设置为 4G

Minikube配置

在 Minikube 启动之后,kubectl 被自动配置为访问 Minikube。使用 kubectl 可以与 Kubernetes 交互。

使用 minikube dashboard 命令可以打开Kubernetes Dashboard。

Minikube dashboard

如果需要访问 Kubernetes 上部署的应用,可以创建类型为 NodePortLoadBalancer 的服务。 下面的Nginx服务的类型是NodePort,可以通过 minikube service 命令得到访问该服务的地址。

Minikube NodePort 服务

对于 LoadBalancer 类型的服务,则要稍微复杂一点。当服务创建之后,它的外部地址的状态会是 Pending,表示处理中。这个时候需要使用 minikube tunnel 命令来打开一个通道。通道打开之后,再查看服务,就可以看到访问的地址了。

Minikube tunnel

Minikube 支持持久化存储,只需要使用标准的 PersistenceVolumeClaim 即可。Storage class的名称是 standard。创建的PersistenceVolumeClaim 按照正常的方式来使用。下面的命令显示了 Minikube 上的 storage class、persistence volume claim和 persistence volume。

Minikube持久化

在使用 Minikube 开发时,经常会需要把本地创建的镜像,在 Minikube 上运行。最简单的做法是让本地的 Docker 客户端,指向 Minikube 中的 Docker 服务器。使用图中给出的 eval $(minikube docker-env) 命令即可。当完成这一步之后,运行 docker build 命令产生的镜像,可以在 Minikube 中直接使用。需要注意的是,minikube docker-env 的设置只在当前命令行终端有效。如果新开终端,需要再次运行该命令。这个命令本质上只是设置了一些环境变量,对 Docker 客户端进行配置。

Minikube镜像

Minikube提供了非常多的附加组件,完成不同的功能。使用 minikube addons list 命令可以列出来全部可用的组件。使用 minikube addons enable 命令可以启用组件。比如 minikube addons enable metrics-server 可以启用性能指标数据服务器。启用了之后,通过kubectl top node 就可以查看节点的性能。

Minikube组件

当需要访问Minikube上的节点时,使用 minikube ssh 命令即可。

版权所有 © 2024 灵动代码