Dok Docs
Github Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

kubectl-plugins

概述

下面是 DOK 预装的 kubectl 的插件,以及简单的使用说明。

krew

krew 是用来管理 kubectl 插件的工具,另外 krew 还需要安装 git 等工具才能使用,离线环境下,krew 可能用处不大。

export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

kubectl-iexec

这个插件可以在终端交互式地选择当前 Namespace 下的容器进入,另外 DOK 给 kubectl-iexec 配置了一个 alias,是 kiexec

kubectl iexec
kubectl-iexec
kiexec

img_1.png

kubectl-example

通过这个插件可以渲染一些常用的资源对象的 yaml,方便本地编辑部署。

kubectl example deploy
kubectl-example pod

img.png

kubectl-df-pv

这个插件可以查询 PV 的使用量,不过安装的时候会有些小问题,如果想通过 kubectl df-pv 使用的话可以参考一下这个 issue

df-pv

img_4.png

kube-capacity

这个插件主要看资源的容量的,可以按很多维度来进行统计,比如 Namespace, Node, Pod 之类。

kube-capacity
kube-capacity --available

img_2.png

img_3.png

kubectl-kail

这个插件可以类似于 kubectl logs --tail 来输出 Pod 的日志。

kubectl kail
kubectl-kail

img_5.png

kubectl debug

kubectl debug 不算是 kubectl 的插件,属于其中的功能(在较早的kubectl中确实也是一个插件),在 debug 的过程中非常有用,有兴趣的可以了解一下相关的实现,DOK 集群默认都开启了临时容器的 feature-gate。

kubectl run ephemeral-demo --image=k8s.gcr.io/pause:3.4.1 --restart=Never
kubectl debug -it ephemeral-demo --image=busybox:1.31.1 --target=ephemeral-demo

kubectl run myapp --image=busybox:1.28 --restart=Never -- sleep 1dA
kubectl debug myapp -it --image=ubuntu --share-processes --copy-to=myapp-debug
kubectl debug myapp --copy-to=myapp-debug --set-image=*=ubuntu
kubectl delete pod myapp myapp-debuga

kubectl debug node/mynode -it --image=ubuntu

img_6.png

参考资料

  1. 临时容器
  2. 共享Namespace
  3. debug-running-pod
  4. 使用临时调试容器来进行调试
  5. 通过Pod副本调试