k8s命令行插件
k8s命令行插件
通过kubectl可以直接调用的插件
2种实现方法:
- 独立执行文件,可写脚本,命名必须是: kubectl-插件
- krew插件管理工具,由k8s社区维护
官方插件开发案例: https://github.com/kubernetes/sample-cli-plugin
K8s命令行工具
- kube-ps1 显示当前上下文和ns信息
- kube-prompt 交互式,支持自动补全
- k9s 专业命令行维护工具
独立执行文件:
将程序放到PATH包含任意目录即可,但无法覆盖kubectl已有的子命令,如果与kubectl现有的子命令相同,则会优先执行内置子命令,因此插件不会被执行
查看是否冲突:
kubectl plugin list
配置插件
ln -s /bin/echo /usr/local/bin/kubectl-echo
kubectl echo 123
krew插件管理工具:
支持插件:https://krew.sigs.k8s.io/plugins/
安装:
(
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"' > /etc/profile.d/krew.sh
插件下载加速:
插件都是在github,下载速度很慢,可用这个脚本加速下载
部分下载出错时改为直接用:
kubectl krew install 插件
#安装axel下载器
yum install gcc gcc-c++ make autoconf gettext pkg-config git
wget https://github.com/axel-download-accelerator/axel/releases/download/v2.17.11/axel-2.17.11.tar.xz
./configure --prefix=/usr/local/axel ; make -j4 && make -j4 install
echo 'export PATH=/usr/local/axel/bin:$PATH' > /etc/profile.d/axel.sh
. /etc/profile
cd ..;rm -rf axel*
#下载脚本
wget https://github.com/int32bit/fast-krew/archive/refs/heads/master.zip -O fast-krew.zip
wget https://github.com/suyanhj/fast-krew/archive/refs/heads/master.zip -O fast-krew.zip
unzip fast-krew.zip
mv /opt/fast-krew-master/fast_krew.sh /bin/fast_krew
rm -rf fast-krew.zip
#使用
fast_krew -n 50 插件
实用插件
datree #测试yml配置清单语法
kubectx #切换上下文
kubens #切换ns
debug #可单独启动一个容器进入需要调试的pod的系统ns空间。k8s内置有一个debug工具,但这个启动的pod工具更全
grep #过滤
iexec #exec命令交互式版
doctor #检测集群监控,etcd、node状态等
df-pv #显示pv剩余空间
resource-capacity #显示node的cpu和内存信息
view-allocations #显示节点的cpu、内存、pod/存储等信息
tail #同时查看多个pod的日志,可根据标签显示
datree插件安装
curl https://get.datree.io |bash
#盘
datree config set offline local #离线模式
datree config set offline fail #配置为在线模式,需要访问github,出错后就退出
datree completion bash > /etc/bash_completion.d/datree #shell补全
debug插件安装
gitub: https://github.com/JamesTGrant/kubectl-debug
export RELEASE_VERSION=1.0.0
curl -Lo ~/.krew/bin/kubectl-debug2 https://github.com/JamesTGrant/kubectl-debug/releases/download/v${RELEASE_VERSION}/kubectl-debug
chmod +x ~/.krew/bin/kubectl-debug2
#语法
kubectl debug2 -n ns 访问pod -c pod中容器
命令:
kubectl krew update # 更新
kubectl krew search # 显示所有插件
kubectl krew install view-secret # 安装名为view-secret的插件
kubectl view-secret # 使用该插件
kubectl krew upgrade # 升级安装的插件
kubectl krew remove view-secret # 卸载插件

浙公网安备 33010602011771号