到 2021 年,几乎所有接触过云基础设施的人都熟悉 Kubernetes 项目。简单地说,Kubernetes 是一个非常强大的容器编排平台,并且 Kubernetes 社区一直在共享工具,这有助于改善 Kubernetes 开发人员的体验。本文列出作者自己最常用的 11 款 Kubernetes 工具,并对它们进行了分类介绍。
Kubernetes 是一个非常强大的容器编排平台。但在我看来,Kubernetes 最重要的是将最佳实践整合到了一个系统中,这个系统可以从树莓派(Raspberry Pi)扩展到财富 500 强中最大的基础设施。它使得开发和运维人员能够通过标准化的 API 和有意义的抽象(如 Pod 或 ConfigMap)进行协作。
通过提供一个开源标准,Kubernetes 可以将一个组织从数十年自己摸索的“容器策略”中拯救出来,幸运的是,这个标准也是每个主要云供应商的标准。也就是说,像 Kubernetes 这样庞大的野兽是很难驯服的,但为了充分发挥它的潜力,我们需要一套额外的工具。
Kubernetes 社区一直在共享工具,这有助于改善 Kubernetes 开发人员的体验。以下是我自己最常用的 11 款 Kubernetes 工具,我将它们进行了分类:哪些是可以帮助我运行 Kubernetes 的工具,哪些是测试 Kubernetes 的工具,以及哪些是可以让我在 IDE 中能够获得乐趣的(最后但并非不重要)。
类别 1:运行 Kubernetes 环境
Minikube 仍然是最佳的
几乎每个 Kubernetes 教程都是从“下载 Minikube”开始的,这在今天仍然行得通。如果你想在一个真正低风险的环境中编排容器,那么打包及维护良好的 Minikube 项目可以让 你在大约 23 秒内即可运行一个集群。
Helm 仍然是可重复部署的标准
虽然我们都编写过一两个一次性脚本来将一些配置部署到 Kubernetes 中,但实际上管理可重复部署的方法是使用 Helm。就像 Ubuntu 上的 apt 或 RHEL 上的 rpm 一样,Helm 是一个包管理器,它为 Kubernetes 开发人员做了很多事情。作为一名开发人员,想在投入不多的情况下用其他项目来测试我的应用程序。我可以简单地运行helm install jenkins/jenkins,而不是编写自己的 Jenkins 设置。想要获取 Helm 或其他 Kubernetes 软件包,请查看 Artifact Hub。
Rancher K3s 可随时随地运行
向 Kubernetes 服务中推送容器是一回事,但是如果你想在 Raspberry Pi 农场之外也弄一个呢?来自 Rancher 的 K3s 项目可以做到这一点。正如维护人员在 README 中所说的那样,它对于 Kubernetes“集群学”(clusterology)的任何边界或物联网尝试都是理想选择。
K3s 作为本地和轻量级集群选择的一个突出特点是它支持的设备非常广泛。使用 K3s,你可以在任何地方运行 Kubernetes。事实上,它是以单个二进制文件下载的,这意味着它包含了所有生产 Kubernetes 配置的功能(sqlite3 是默认的,但是你可以通过它的可插拔存储后端将其扩展到 Etcd3),并且 Rancher 团队及其 1749 名(到目前为止)贡献者仍在非常积极地维护它。
Loft 可扩大团队规模
任何人都可以通过调用curl来启动上面提到的 Minikube 集群。但是,如果你想要和别人合作呢?在云原生开发工具和本地开发集群的交接处有很多选择。
传统的选择是在公有云上运行一些可公开访问的资源:AKS、EKS、DigitalOcean Managed Kubernetes 或其他可用资源。但是任何一个在云服务上运行过hello world教程但忘删除它的人都知道,这会让你很快就损失很多。
Loft 提供了一组包含 UI 和 CLI 在内的服务,可以进一步抽象 Kubernetes 环境,这些环境最终将在生产环境中运行。这样做之后,你可以建立一个自助服务体验,而无需考虑隔离和预算问题。
Loft 对隔离的关注,特别是对 vClusters 及其相应 Spaces 的关注,为每个开发人员提供了一个真实的环境,而不会影响预算。这对开发人员和部门领导来说都是非常有价值的。
Loft 的价值在于启动和关闭安全 Kubernetes 环境的速度。它在一个用例中提到只需单击一次 UI,即可创建本地环境的现场演示。更自私地考虑一下,在不破坏开发集群命名空间的情况下,可以在自己的独立测试用例中演示最新的生产功能, 这说听起来确实不错。
此外,Loft 实验室最近聘请了了不起的 Rich Burroughs,这对于他们正在建立的这类社区来说是个非常好兆头。
当与团队合作时,使用 Loft 是非常有意义的。
类别 2:简化反馈回路
Skaffold 可提供自动反馈回路
假设你是一名开发人员,你想写一个可以在 Kubernetes 上运行的应用程序。从运行 Node.js 或 Python 应用程序到在 Kubernetes 上运行容器,你需要了解大量的 Kubernetes 概念,数量大到像一堵 YAML 墙。幸运的是,谷歌的好朋友们编写了 Skaffold,为我们提供了一些急需的脚手架。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。