#kubernetes #repl #cli

app click

一个命令行REPL,用于集成到现有的CLI工作流程中的Kubernetes

16个版本

0.6.3 2023年9月26日
0.6.2 2022年9月27日
0.6.1 2022年5月6日
0.5.4 2021年6月16日
0.3.1 2018年3月27日

#166 in 开发工具

Apache-2.0

480KB
12K SLoC

Click


Click是Kubernetes的命令行交互控制器。其目的是快速有效地管理大量Kubernetes集群/对象。

代码状态

Master Status

更改日志

查看更改日志以获取发布历史。

演示屏幕录制

A demo gif that shows a few features

使用模式

Click是一个REPL。当运行Click时,有一个当前活动的配置,其中包括当前的Kubernetes上下文,以及可选的命名空间和Kubernetes对象。然后命令应用于活动配置,因此不需要持续指定要针对哪些对象。

安装

您需要Rust和Cargo。有关如何获取它们的说明,请参阅此处

Click在crates.io上,因此您只需运行cargo install click即可安装它。

或者,要自己构建它,克隆click仓库并运行cargo build

Arch Linux

有一个aur可用。

运行

如果您使用了cargo install,则可以直接运行click(假设~/.cargo/bin已添加到您的PATH)。

如果您从源代码构建,请运行./target/debug/click,或运行cargo run

Click默认在~/.kube/config中查找您的Kubernetes配置。它还在.kube目录中存储自己的配置。您可以使用--config选项更改此设置。如果设置了KUBECONFIG,它将使用那里找到的任何文件作为Kubernetes配置文件。

一旦进入REPL,键入help以查看您可以做什么。

提示

提示的顺序是[上下文][命名空间][对象]。

对象的颜色会根据其类型而变化。(例如,黄色用于pod,蓝色用于节点等)

支持的认证方式

Click目前支持以下方式来认证到Kubernetes集群

  • 令牌
  • 用户名/密码
  • 私钥/证书
  • gke风格认证提供者

GKE 支持

对于 Google Kubernetes Engine,Click 支持读取 kube 配置文件中已有的令牌。如果该令牌已过期,Click 将请求一个新的令牌并使用它。它(目前)不会将新令牌保存回配置文件。

为什么我收到 BadDER 错误

如果你的 Kubernetes 集群正在使用节点授权(https://kubernetes.ac.cn/docs/admin/authorization/node/),则你的 API 服务器可能正在使用一个 DNS 名称如 "system:something" 的证书。从技术上讲,这是一个无效的证书,因为 DNS 名称中不能包含冒号。由于 WebPKI crate 比 Go 更严格,即使 kubectl 可以接受,Click 也不会接受来自 API 服务器的证书。

临时修补 WebPKI 以接受证书

  1. 构建 Click
  2. 运行位于 util 目录中的 fix_bad_der.sh 脚本
  3. 运行 cargo clean
  4. 重新构建 Click

依赖关系

~87MB
~1.5M SLoC