kubectx,kubens
这个已经介绍过这两个分别可以快速切换集群context和namespace。
参考地址:https://wghdr.top/archives/1718
krew
GitHub地址:https://github.com/kubernetes-sigs/krew
它可以更方便寻找,安装并管理kubectl插件,在krew上已经有超过200个插件。
安装
官方文档:https://krew.sigs.k8s.io/docs/user-guide/setup/install/
我这里是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
添加环境变量
echo 'export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"' >> .bashrc
source .bashrc
使用
kubectl krew install example
kubectl example deployment
kubetail
GitHub地址:https://github.com/johanhaleby/kubetail
可以一次输出多个pod的日志。
安装
git clone https://github.com/johanhaleby/kubetail.git
cd kubetail
cp kubetail /usr/bin
使用
kubetail -n kube-system
kubetail -l component=etcd -n kube-system
# 可以使用正则来过滤
kubetail "^kube|.*manager.*" --regex -n kube-system
kubectl tail
也可以实现一次输出多个pod的日志。
kubectl krew install tail
kubectl tail -n kube-system
区别kubetail支持颜色区分,支持正则。
stern
GitHub地址:https://github.com/stern/stern
也可以实现一次输出多个pod的日志。
安装
https://github.com/stern/stern/releases/download/v1.22.0/stern_1.22.0_linux_arm64.tar.gz
# or
kubectl krew install stern
使用
stern --template '{{printf "%s (%s/%s/%s/%s)\n" .Message .NodeName .Namespace .PodName .ContainerName}}' etcd -n kube-syste
kubectl stern kube-state-metrics-687d66b747-dmvkr -n kubesphere-monitoring-system
kubectl stern manager -n kube-system
popeye
GitHub地址:https://github.com/derailed/popeye
Popeye是一个实时扫描Kubernetes集群并报告部署资源和配置的潜在问题的实用程序。它根据部署的内容而不是磁盘上的内容来清理集群。通过扫描您的集群,它可以检测错误配置,从而防止将来出现令人头疼的问题。此外,如果您的集群部署了metric-server,它会报告潜在的资源超额/不足分配,并在集群容量耗尽时尝试发出警告。它是只读的,不会对集群做出任何修改。
安装
wget https://github.com/derailed/popeye/releases/download/v0.10.1/popeye_Linux_x86_64.tar.gz
mkdir popeye
tar xvf popeye_Linux_x86_64.tar.gz -C popeye
cp popeye/popeye /usr/bin
使用
警告等级:
它会提示pod没有设置limit:
它会提示pod不能使用root用户,检查安全上下文:
它会提示pod没有设置探针:
它会提示API version需要修改:
它会提示svc的endpoint只有一个后端:
最后还会给出集群的评分:
k9s
官方文档地址:https://k9scli.io/
K9s是一个基于终端的UI,用于与Kubernetes集群交互。K9s持续监视Kubernetes的变化,并提供后续命令与所观察到的资源进行交互。
安装
wget https://github.com/derailed/k9s/releases/download/v0.26.7/k9s_Linux_x86_64.tar.gz
mkdir k9s
tar xvf k9s_Linux_x86_64.tar.gz -C k9s
cp k9s/k9s /usr/bin
使用
启动
k9s
相关命令
k9s help
# 获取有关k9s运行时间的信息
k9s info
# 在一个现有的kubeconfig上下文中启动k9s
k9s --context <your_context>
# 在指定的命名空间中运行k9s
k9s -n <your_namespace>
# 以只读模式启动k9s
k9s --readonly
# 退出
q或者quit
# 返回上个页面
esc
输入0查看所有pod
输入1查看default namespace pod
选择某个pod,输入l,显示这个pod的日志
选择某个pod,输入d,describe这个pod
选择某个pod,输入e,edit这个pod
选择某个pod,输入s,进入这个pod执行命令(exec)
输入:svc或者:service,跳转到service视图
输入:deploy或:deployment,跳转到deployment视图
输入:rb,跳转到RBAC视图
点击一个rolebinding,查看详细rbac权限
输入:ns或:namespace,跳转到命名空间视图
输入:cj或:cronjob,跳转到cronjob视图
输入:ev或:event,跳转到event视图.
输入ctrl-a显示所有资源
输入pu或pulses,显示集群资源概览
输入:xray RESOURCE [NAMESPACE],显示集群资源关联关系。RESOURCE可以是po, svc, dp, rs, sts, ds中的一个,NAMESPACE是可选的
与上文中的popeye集成,输入:pop或:popeye,显示popeye的检测结果
切换皮肤
官方的皮肤地址:https://github.com/derailed/k9s/tree/master/skins
先查看k9s配置文件位置
k9s info
进入配置目录,拷贝皮肤文件到skin.yml
上文中图片中的皮肤就已经更换成了dracula.yml,其他的自行体验更换。