在 Krew 上分发插件
为什么使用 Krew 进行分发?
表面上,安装 kubectl 插件似乎很简单,您需要做的就是将可执行文件放在用户的 PATH
中,并以 kubectl-
为前缀,您可能会考虑一些 Krew 的其他替代方案,例如
- 让用户手动下载插件可执行文件,并将其移动到
PATH
中的某个目录 - 使用操作系统包管理器分发插件可执行文件,例如 Homebrew(macOS)、apt/yum(Linux)或 Chocolatey(Windows)
- 使用语言包管理器(例如 npm 或 go get)分发插件可执行文件
虽然这些方法并非完全不可行,但值得考虑的潜在缺点包括
- 如何在手动安装时为用户获取更新
- 如何在多个平台(macOS、Linux 和 Windows)打包插件
- 如何确保您的用户拥有合适的语言包管理器(go、npm)
- 如何处理实现语言的更改(例如从 npm 迁移到另一个包管理器)
Krew 为所有 kubectl 插件干净地解决了这些问题,因为它被设计 专门来解决这些缺点。使用 Krew,在您编写插件清单后,您的插件将可以在所有平台上安装,而不必处理它们的包管理器。
入门步骤
一旦你 开发 了一个 kubectl
插件,请按照以下步骤在 Krew 上分发您的插件
- 将您的插件打包到一个归档文件中 (
.tar.gz
或.zip
)。 - 使归档文件公开可用(例如,作为 GitHub 发布文件)。
- 编写一个 Krew 插件清单 文件。
- 将您的插件提交到 krew-index.