管理 Kubernetes 集群可能很快变得复杂。虽然 kubectl
已经是一个强大的工具,但添加合适的插件可以大大提高效率——无论您是在切换集群、检查日志还是调试工作负载。
喜欢研究的可以去看一下插件:Kubectl plugins available · Krew
Krew:必备的插件管理器
本人目前所使用的:
- get-all
- node-shell
- ns
- view-allocations
因为本人使用了别名方式执行命令方便看懂我就把我的配置放到下面:
#使用的是zsh 如果需要可以加入到~/.zshrc中
#AliYun-Kubernetes
alias kubectl=kubecolor
compdef kubecolor=kubectl
### === Kubernetes: Aliyun Cluster (AK) ===
# 使用 ak 替代 kubectl,自动加载 akg_config
alias ak='KUBECONFIG=$HOME/.kube/akg_config kubectl'
# helm 命令,使用相同 kubeconfig
alias ah='KUBECONFIG=$HOME/.kube/akg_config helm'
### Plugins: Aliyun cluster
alias akns='KUBECONFIG=$HOME/.kube/akg_config kubectl ns' # 命名空间选择
alias akga='KUBECONFIG=$HOME/.kube/akg_config kubectl get-all' # 查看集群所有资源
alias aksh='KUBECONFIG=$HOME/.kube/akg_config kubectl node-shell' # 登录节点shell
alias akocall='KUBECONFIG=$HOME/.kube/akg_config kubectl view-allocations' # 资源分配查看
alias akkrew='KUBECONFIG=$HOME/.kube/akg_config kubectl krew' # 管理插件
### === Kubernetes: Host Cluster (MK) ===
alias mk='KUBECONFIG=$HOME/.kube/mkg_config kubectl'
alias mh='KUBECONFIG=$HOME/.kube/mkg_config helm'
### Plugins: Host cluster
alias mkns='KUBECONFIG=$HOME/.kube/mkg_config kubectl ns'
alias mkga='KUBECONFIG=$HOME/.kube/mkg_config kubectl get-all'
alias mksh='KUBECONFIG=$HOME/.kube/mkg_config kubectl node-shell'
alias mkocall='KUBECONFIG=$HOME/.kube/mkg_config kubectl view-allocations'
alias mkkrew='KUBECONFIG=$HOME/.kube/mkg_config kubectl krew'
Krew-安装
可以参考Krew官网
确保git已安装
运行此命令下载并安装krew
:
#macOS/Linux
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\\(arm\\)\\(64\\)\\?.*/\\1\\2/' -e 's/aarch64$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "<https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz>" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)
#将该$HOME/.krew/bin目录添加到 PATH 环境变量中。为此,请更新.bashrc或.zshrc文件并附加以下行:
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
#重新启动你的shell。
#运行kubectl krew version检查安装
kubectl krew version
OPTION VALUE
GitTag v0.4.5
GitCommit e7e5b61
IndexURI <https://github.com/kubernetes-sigs/krew-index.git>
BasePath /Users/echo/.krew
IndexPath /Users/echo/.krew/index/default
InstallPath /Users/echo/.krew/store
BinPath /Users/echo/.krew/bin
DetectedPlatform darwin/arm64
kubectl-ns:快速切换命名空间
- 使用插件切换命名空间
#安装ns插件
kubectl krew install ns
#切换命名空间
kubectl ns <namespace-name>
#由于我这里配置了alias图片中控制台输出的命令可能有些变化
#切换命名空间
akns <namespace-name>
#查看当前命名空间的Pod
ak get pod
kubectl-view-allocations:查看资源分配情况
集群 CPU 或内存不足却不知原因?kubectl-view-allocations 显示跨命名空间、Pod 和节点的 CPU 和内存分配情况。
#安装
kubectl krew install view-allocations
#查看资源分配情况
kubectl view-allocations
kubectl-get-all:一键查看命名空间下的所有资源
一次行显示命名空间内的所有对象
#安装
kubectl krew intsall get-all
#查看某个命名空间所有资源
kubectl get-all <namespace-name>