kubectl-plugins
下面是 DOK 预装的 kubectl 的插件,以及简单的使用说明。
krew 是用来管理 kubectl 插件的工具,另外 krew 还需要安装 git 等工具才能使用,离线环境下,krew 可能用处不大。
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
这个插件可以在终端交互式地选择当前 Namespace 下的容器进入,另外 DOK 给 kubectl-iexec 配置了一个 alias,是 kiexec
。
kubectl iexec
kubectl-iexec
kiexec
通过这个插件可以渲染一些常用的资源对象的 yaml,方便本地编辑部署。
kubectl example deploy
kubectl-example pod
这个插件可以查询 PV 的使用量,不过安装的时候会有些小问题,如果想通过 kubectl df-pv
使用的话可以参考一下这个 issue。
df-pv
这个插件主要看资源的容量的,可以按很多维度来进行统计,比如 Namespace, Node, Pod 之类。
kube-capacity
kube-capacity --available
这个插件可以类似于 kubectl logs --tail
来输出 Pod 的日志。
kubectl kail
kubectl-kail
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