Kubernetes 是一个用于容器的开源编排平台。它由 Google 开发,提供了一个开源系统,用于自动化部署、扩展和管理容器化应用程序。虽然大多数人在云环境中运行 Kubernetes,但在本地运行 Kubernetes 集群不仅是可能的,而且至少有两个好处
- 您可以快速试用 Kubernetes,然后再决定是否将其用作部署应用程序的主要平台。
- 您可以将其设置为本地开发环境,然后再将任何内容推送到公共云,从而实现开发环境和生产环境之间的分离。
无论您的情况如何,将本地 Kubernetes 环境设置为您的开发环境都是推荐的选择,因为这种设置可以创建一个安全且敏捷的应用程序部署流程。
幸运的是,有多个平台可供您尝试在本地运行 Kubernetes,它们都是开源的,并且在 Apache 2.0 许可证下可用。
- Minikube 的主要目标是成为本地 Kubernetes 应用程序开发的最佳工具,并支持所有适用的 Kubernetes 功能。
- kind 使用 Docker 容器“节点”运行本地 Kubernetes 集群。
- CodeReady Containers (CRC) 管理一个本地 OpenShift 4.x 集群,该集群针对测试和开发目的进行了优化。
- Minishift 通过在虚拟机 (VM) 中运行单节点 OpenShift 集群,帮助您在本地运行 OpenShift 3.x 集群。
Minikube

(Bryant Son, CC BY-SA 4.0)
Minikube 是在本地计算机上运行 Kubernetes 环境的最知名和最受欢迎的选择。无论您使用什么操作系统,Minikube 的文档都为您提供了简单的 安装 指南。通常,安装 Minikube 就像运行两个命令一样简单
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-PLATFORM-amd64
$ sudo install minikube-PLATFORM-amd64 /usr/local/bin/minikube
Minikube 在 Linux、macOS 或 Windows 上快速设置本地 Kubernetes 集群,具有以下功能
- 支持最新的 Kubernetes 版本(+6 个之前的次要版本)
- 跨平台(Linux、macOS、Windows)
- 可以作为 VM、容器或裸机部署
- 多种容器运行时(CRI-O、containerd、Docker)
- 用于快速镜像推送的 Docker API 端点
- LoadBalancer、文件系统挂载、FeatureGates 和其他高级功能
- 用于轻松安装 Kubernetes 应用程序的附加组件
因为 Minikube 是一个开源项目,您可以为其 源代码 做出贡献。
kind

(Bryant Son, CC BY-SA 4.0)
kind 的开发者将其描述为“一个使用 Docker 容器‘节点’运行本地 Kubernetes 集群的工具。” 它被设计用于测试 Kubernetes,但也可以用于本地开发或持续集成。
kind 支持
- 多节点(包括高可用性)集群
- 从源代码构建 Kubernetes 发布版本
- 除了预发布的版本外,还支持 Make/Bash/Docker 或 Bazel
- Linux、macOS 和 Windows
此外,kind 是一个云原生计算基金会 (CNCF) 认证的合规 Kubernetes 安装程序。因为它开源,您可以在其 GitHub 存储库 中找到 kind 的源代码。
CodeReady Container (CRC)

(Bryant Son, CC BY-SA 4.0)
如果您想在本地试用最新版本的 OpenShift,请尝试 Red Hat CodeReady Containers (CRC)。CRC 为您的本地计算机带来一个最小的 OpenShift 4.x 集群,该集群为开发和测试目的提供了最小的环境。CRC 主要面向开发人员的桌面使用。
您可以在 GitHub 上找到 CodeReady Container 的 源代码,它也在 Apache 2.0 许可证下可用。
Minishift

(Bryant Son, CC BY-SA 4.0)
Minishift 项目 帮助您运行一个 OpenShift 版本,该版本带有 OKD,并在本地使用虚拟机内的单节点 OpenShift 集群。您可以使用它来 试用 OpenShift 或在本地主机上为云开发。
与此列表中的其他工具一样,Minishift 是开源的,您可以在 GitHub 上访问其 源代码。
面向大众的 Kubernetes
如您所见,有几种方法可以在本地环境中试用 Kubernetes。我遗漏了什么吗?欢迎随时留言提问或提出建议。
评论已关闭。