文章背景

Minikube 是一个可以在本地运行 Kubernetes 的工具, Minikube 可以在个人电脑(包括Windows、MacOS和Linux PC)上运行单节点 Kubernetes 集群, 以便 Kubernetes 试用, 或进行日常开发工作.
所有你需要的是 Docker (或类似的兼容)容器或虚拟机环境, Kubernetes 只需要一个命令:
minikube start .

更多类似的工具还有 kind、kubeadm等, 读者想要深入了解请参考 Kubernetes Documentation--Tasks--Install Tools.

文章目标

  1. 安装 minikube
  2. 初步熟悉 minikube

系统环境

OSUbuntu 20.04.3 LTS Desktopx86_64

详细步骤

1. 换国内源+更新软件源(可选)

Ubuntu 20.04.3 桌面版换源的两种方法

2. 安装 minikube

该部分参考 minikube 官方文档 Minikube -- minikube start

2.1 安装前提

  • 2 CPUs or more
  • 2GB 内存空间
  • 20GB 硬盘空间
  • 网络连接
  • 容器或虚拟机软件,如: Docker、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox或VMware Fusion/Workstation

笔者安装的是 Docker 容器,读者安装 Docker 可以参考下面的链接:
Ubuntu 20.04 安装 Docker 的两种方法

2.2 正式安装

根据机器的操作系统和架构, 选择合适的安装方式, 笔者为 Ubuntu 20.04 LTS 、x86_64 架构.

读者可以使用 uname 命令来查看机器的各种信息.

uname -a
uname --all

image.png

使用 二进制下载x86-64 Linux 上安装最新的 minikube 稳定版 :

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

其他操作系统或架构, 或者更多的安装方式 (Debian package、RPM package), 请参考 Minikube -- minikube start .

安装完成,我们来测试一下.

minikube version

image.png

安装成功!

3. 熟悉 minikube

3.1 启动集群

在具有管理员权限的终端(但不以root身份登录)上运行:

sudo minikube start

image.png

如果 minikube 启动失败,请查看 驱动程序页面 帮助设置兼容容器或虚拟机管理器。

3.2 与集群交互

Kubernetes 命令行工具 kubectl 允许对 Kubernetes 集群运行命令, 可以使用 kubectl 部署应用程序、检查和管理集群资源以及查看日志.
有关更多信息, 包括 kubectl 操作的完整列表, 请参阅 kubectl 参考文档.

如果读者已经安装了 kubectl , 您现在可以使用它来访问您的新集群:

kubectl get pods -A

或者, minikube 可以下载 kubectl 的适当版本, 你应该能够像这样使用它:

minikube kubectl -- get pods -A

读者还可以通过在 shell 配置中添加别名来简化(只在当次登陆有效, 长期有效需要在配置文件中进行配置):

alias kubectl="minikube kubectl --"

Kubectl 可以安装在各种 Linux 平台、MacOS 和 Windows 上. 如果读者想要手动安装 kubectl (不建议, 因为必须使用一个与集群有小版本差异的 kubectl 版本, 例如 v1.23 客户端可以与 v1.22、v1.23、v1.24 三个控制平面通信, 这给安装带来了更多的操作), 请参考 Kubernetes Documentation--Tasks--Install Tools.

最初, 某些服务(如存储置备程序)可能尚未处于运行状态, 这是群集启动过程中的正常情况, 会在短时间内自行解决.为了更深入地了解您的集群状态, Minikube 捆绑了 Kubernetes Dashboard , 让您可以轻松适应新环境:

minikube dashboard

3.3 部署应用

创建一个示例部署,并在端口 XXXX 上公开它:
(似乎需要代理)

kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=XXXX

这可能需要一些时间,但是当你运行时,你的 deployment 很快就会显示出来:

kubectl get services hello-minikube

访问这个 service 的更简单的方法是让 minikube 为你启动一个浏览器:

minikube service hello-minikube

读者应该能在 http://localhost:XXXX 访问了~
读者应该能够在应用程序输出中看到来自 nginx 的请求元数据, 例如 CLIENT VALUES、SERVER VALUES、HEADERS RECEIVED 和 BODY. 尝试更改请求的路径并观察 CLIENT VALUES 的变化. 同样, 您可以对相同的 POST 请求执行 POST 请求并观察输出的 BODY 部分中显示的主体.

3.4 管理集群

在不影响部署应用的情况下暂停 Kubernets :

minikube pause

取消暂停的实例 :

minikube unpause

停止集群 :

minikube stop

增加默认内存限制(需要重启) :

minikube config set memory 16384

浏览易于安装的Kubernetes服务目录 :
Browse the catalog of easily installed Kubernetes services :

minikube addons list

创建第二个运行旧Kubernetes版本的集群 :

minikube start -p aged --kubernetes-version=v1.16.1

删除所有 minikube 集群 :

minikube delete --all

致谢

  1. Kubernetes Documentation--Tasks--Install Tools
  2. Win10 安装 Docker Desktop ( 基于WSL2,WSL vs Hyper-V)
  3. Ubuntu 20.04 安装 Docker 的两种方法
  4. Minikube -- minikube start

ninesun
16 声望2 粉丝