k8s

几种常用k8s工具介绍

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

file

添加环境变量

echo 'export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"' >> .bashrc
source .bashrc

使用

file

kubectl krew install example
kubectl example deployment

file

kubetail

GitHub地址:https://github.com/johanhaleby/kubetail
可以一次输出多个pod的日志。

安装

git clone https://github.com/johanhaleby/kubetail.git
cd kubetail
cp kubetail /usr/bin

使用

file

kubetail -n kube-system
kubetail -l component=etcd -n kube-system
# 可以使用正则来过滤
kubetail "^kube|.*manager.*" --regex -n kube-system

file

file

kubectl tail

也可以实现一次输出多个pod的日志。

kubectl krew install tail
kubectl tail -n kube-system

file

file

区别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

file

使用

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

file

file

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

使用

file

file

警告等级:

file

它会提示pod没有设置limit:

file

它会提示pod不能使用root用户,检查安全上下文:

file

它会提示pod没有设置探针:

file

它会提示API version需要修改:

file

它会提示svc的endpoint只有一个后端:

file

最后还会给出集群的评分:

file

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

file

相关命令

k9s help
# 获取有关k9s运行时间的信息
k9s info
# 在一个现有的kubeconfig上下文中启动k9s
k9s --context <your_context>
# 在指定的命名空间中运行k9s
k9s -n <your_namespace>
# 以只读模式启动k9s
k9s --readonly
# 退出
q或者quit
# 返回上个页面
esc

输入0查看所有pod

file

输入1查看default namespace pod

file

选择某个pod,输入l,显示这个pod的日志

file

选择某个pod,输入d,describe这个pod

file

选择某个pod,输入e,edit这个pod

file

选择某个pod,输入s,进入这个pod执行命令(exec)

file

输入:svc或者:service,跳转到service视图

file

file

输入:deploy或:deployment,跳转到deployment视图

file

输入:rb,跳转到RBAC视图

file

点击一个rolebinding,查看详细rbac权限

file

输入:ns或:namespace,跳转到命名空间视图

file

输入:cj或:cronjob,跳转到cronjob视图

file

输入:ev或:event,跳转到event视图.

file

输入ctrl-a显示所有资源

file

输入pu或pulses,显示集群资源概览

file

输入:xray RESOURCE [NAMESPACE],显示集群资源关联关系。RESOURCE可以是po, svc, dp, rs, sts, ds中的一个,NAMESPACE是可选的

file

与上文中的popeye集成,输入:pop或:popeye,显示popeye的检测结果

file

切换皮肤

官方的皮肤地址:https://github.com/derailed/k9s/tree/master/skins

先查看k9s配置文件位置

k9s info

file

进入配置目录,拷贝皮肤文件到skin.yml

file

上文中图片中的皮肤就已经更换成了dracula.yml,其他的自行体验更换。

分类: k8s
0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
内联反馈
查看所有评论

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部
0
希望看到您的想法,请您发表评论x