Minikube¶
在这篇文章中
信息
Minikube 是一个命令行实用程序,允许您轻松部署本地 Kubernetes 集群。它对于需要本地 Kubernetes 环境进行测试和应用程序开发的开发人员非常有用。
警告
这只是一个用于管理容器或虚拟机管理器的实用程序,例如:Docker、QEMU、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox 或 VMware Fusion/Workstation。您需要自己在服务器上安装所需的容器化或虚拟机软件!
Minikube 关键特性¶
- 快速启动本地 Kubernetes 集群 - minikube 允许您在几分钟内在本地机器上启动单节点 Kubernetes 集群。您无需进行复杂的配置或设置完整的多节点集群。
- 支持不同的虚拟化驱动程序 - Minikube 集群可以在 VirtualBox、Hyper-V、VMware 中运行,也可以在 Linux、macOS 和 Windows 上原生运行。这为您提供了部署方式的灵活性。
- 自动 kubectl 配置 - 集群启动后,minikube 会自动配置 kubectl 以连接到该集群。无需手动配置 Kubernetes 客户端。
- 内置仪表板和应用 - 仪表板、heapster、ingress 控制器和其他有用工具开箱即用。这加快了入门速度。
- 便捷的管理命令 -
minikube start、stop、delete和其他命令使得直接从终端管理集群生命周期变得容易。 - 网络隔离模式 - 可以以仅主机网络模式启动集群,使其与主网络隔离。
- 附加组件支持 - 可以通过附加组件启用监控、日志记录、可视化等附加功能。
- 与云服务集成 - kubectl 和仪表板可以定制以与云中的远程集群配合使用。
部署功能¶
| ID | 软件名称 | 兼容操作系统 | 虚拟机 | 物理机 | vGPU | GPU | 最低CPU(核) | 最低内存(GB) | 最低硬盘(GB) | 自定义域名 | 是否启用 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 44 | Minikube | Ubuntu 22.04 | + | + | + | - | 2 | 2 | - | 否 | 订购 |
备注
除非另有说明,默认情况下,我们从开发人员的网站或操作系统存储库安装软件的最新发布版本。
部署 Minikube 后的入门指南¶
支付订单后,系统将向注册时指定的电子邮件发送通知,告知服务器已准备好工作。该邮件将包含 VPS 的 IP 地址以及用于连接的 login 和 Password。
我司客户通过服务器硬件和 API 控制面板 — Invapi 进行管理。
您可以在服务器控制面板的 Configuration >> Tags 选项卡中,或在发送的电子邮件中找到授权数据。
- Password:在软件部署完成后,服务器准备就绪时,将发送至您的电子邮件地址。
要使用该服务,您必须通过 SSH 连接到服务器:
然后运行 start 命令,该命令将使用多个 Docker 容器和最新稳定版本的 Kubernetes 自动创建本地 Kubernetes 集群:
该命令需要一些时间运行,并应输出 kubectl 已配置的信息。
备注
如果您需要使用非标准 Kubernetes 版本运行 minikube 以检查兼容性,可以使用带有 --kubernetes-version 参数的 minikube start 命令,例如 v1.2.3。
通过 Homebrew 安装 minikube 也会安装 kubectl,这是管理 Kubernetes 集群的主要命令行工具。现在您可以运行 kubectl get 命令,就像对其他任何 Kubernetes 集群一样,以列出所有正在运行的 pod:
-A 参数返回所有命名空间中的 pod。
执行上述步骤后,将创建本地 Kubernetes 集群,您可以使用 kubectl 等标准 Kubernetes 工具与其交互。
您可以使用以下命令访问仪表板:
执行后,将显示一个链接,例如 http://127.0.0.1:42049/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/。需要对其进行编辑 - 输入服务器的 IP 地址,然后继续查看仪表板。
服务创建¶
默认情况下,pod 仅可通过 Kubernetes 集群内的内部 IP 地址访问。要使 hello-node 容器在 Kubernetes 虚拟网络之外可用,需要将 pod 暴露为 Kubernetes 服务。
您可以使用 kubectl expose 命令将 pod 公开为 Kubernetes 服务:
--type=LoadBalancer 标志表示该服务应在集群外部可见。
测试镜像中的应用代码仅监听 TCP 端口 8080。如果您在 kubectl expose 命令中将应用设置为在其他端口上可用,客户端将无法连接到该端口。
您可以使用以下命令检查创建的服务:
输出结果大致如下:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23m
对于支持负载均衡器的云提供商,会提供外部 IP 地址以访问服务。在 Minikube 中,LoadBalancer 类型通过 minikube service 命令使服务可用。
运行以下命令:
该命令会打开一个浏览器窗口,运行应用程序并显示其响应。
备注
有关 Minikube 基本设置的详细信息,请参阅 开发人员文档。