文章背景
Minikube 是一个可以在本地运行 Kubernetes 的工具, Minikube 可以在个人电脑(包括Windows、MacOS和Linux PC)上运行单节点 Kubernetes 集群, 以便 Kubernetes 试用, 或进行日常开发工作.
所有你需要的是 Docker (或类似的兼容)容器或虚拟机环境, Kubernetes 只需要一个命令:minikube start
.
更多类似的工具还有 kind、kubeadm等, 读者想要深入了解请参考 Kubernetes Documentation--Tasks--Install Tools.
文章目标
- 安装 minikube
- 初步熟悉 minikube
系统环境
OS | Ubuntu 20.04.3 LTS Desktop | x86_64 |
详细步骤
1. 换国内源+更新软件源(可选)
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
使用 二进制下载
在 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
安装成功!
3. 熟悉 minikube
3.1 启动集群
在具有管理员权限的终端(但不以root身份登录)上运行:
sudo minikube start
如果 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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。