Kuber Plus
Kuber Plus是一個(gè)強(qiáng)大的 kubectl 快捷工具,通過(guò)context 隔離來(lái)簡(jiǎn)化多context Kubernetes 命令行操作,提升開(kāi)發(fā)效率。
核心價(jià)值
每個(gè)終端窗口可以獨(dú)立切換到不同的kubectl context,實(shí)現(xiàn)多環(huán)境并行操作,無(wú)需在多個(gè)環(huán)境間反復(fù)切換。
快速入門
生成切換函數(shù)
$ clone git@github.com:H-repos/kuber-plus.git
$ source kuber-plus/kuber-plus.sh
generated: kubeapp-ns/prod-cluster
generated: kubeapp-ns/dev-cluster
generated: kubetest-ns/test-cluster
多終端并行操作
# 終端 1:操作生產(chǎn)環(huán)境
kubeapp-ns/prod-cluster
[app-ns@prod-cluster]$ pods # 查看生產(chǎn)環(huán)境的 Pod
# 終端 2:操作開(kāi)發(fā)環(huán)境
kubeapp-ns/dev-cluster
[app-ns@dev-cluster]$ deploy # 查看開(kāi)發(fā)環(huán)境的部署
# 終端 3:操作測(cè)試環(huán)境
kubetest-ns/test-cluster
[test-ns@test-cluster]$ login test-app-pod # 登錄測(cè)試環(huán)境的 Pod
工作原理
-
自動(dòng)生成函數(shù):
- 讀取
kubectl config view獲取所有context - 解析每個(gè)context的 cluster 和 namespace
- 為每個(gè)context生成獨(dú)立的切換函數(shù)
- 切換函數(shù)執(zhí)行時(shí)設(shè)置環(huán)境變量和別名,實(shí)現(xiàn)自動(dòng)切換
- 讀取
切換函數(shù)命名格式:
kube<namespace>/<cluster>-
上下文隔離:
- 每個(gè)終端獨(dú)立維護(hù)自己的 kubectl context
- 在一個(gè)終端切換context不會(huì)影響其他終端
- 所有 kubectl 命令自動(dòng)使用
--context參數(shù) - 提示符顯示當(dāng)前上下文對(duì)應(yīng)的命名空間和集群:
[namespace@cluster]
附加功能特性
便捷別名
預(yù)定義的常用 kubectl 命令快捷方式:
| 別名 | 命令 |
|---|---|
pods / pod
|
kubectl get pods |
cm |
kubectl get cm |
desc |
kubectl describe |
get |
kubectl get |
deploy |
kubectl get deployments |
ctx |
kubectl config get-contexts |
快速登錄功能
使用 login 命令快速進(jìn)入 pod:
login pod-name # 進(jìn)入默認(rèn)容器
login pod-name container # 進(jìn)入指定容器
函數(shù)名自定義
可以通過(guò)編輯腳本中的 FUNC_NAME_REPLACEMENTS 來(lái)自定義函數(shù)名:
# 格式:"原始值/目標(biāo)值"
FUNC_NAME_REPLACEMENTS=("abc-service/abc" "xyz-prod/xyz")
例如,如果您的命名空間是 abc-service,它將在函數(shù)名中被替換為 abc。如果您的集群是 xyz-prod,它將被替換為 xyz。