博客 k8s Krew 插件使用指南-上

k8s Krew 插件使用指南-上

   数栈君   发表于 2024-03-19 17:58  88  0

kubectl Krew 插件使用指南

前言:在某些情况下,只是使用 kubectl 命令的时候存在效率比较低、功能不满足的问题,针对这些问题,社区提出了krew插件项目。还有一点是:大部分工程师还是喜欢使用黑屏命令行,因为这样的效率是最高的,而且排查问题会更直接。

1、国内安装krew 插件

由于众所周知的网络原因,国内安装krew会比较困难,这里我们采用加速域名加离线安装的方式来进行规避。

$ 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.91chi.fun/https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
  tar zxvf "${KREW}.tar.gz" &&
  curl -fsSLO "https://github.91chi.fun/https://github.com/kubernetes-sigs/krew/releases/latest/download/krew.yaml" &&
  ./"${KREW}" install --manifest=krew.yaml --archive=${KREW}.tar.gz && ./"$KREW" update
$ echo 'export PATH="${PATH}:${HOME}/.krew/bin"' >> ~/.bashrc
$ source ~/.bashrc
## 注:在国内下载不下来的所有插件,我们都可以把安装包以及yaml文件单独下载下来,然后通过--manifest和--archive进行安装

2、先安装比较热门一些插件,例如:ns、mtail、get-all等

$ kubectl-krew install ns
$ kubectl-krew install get-all
$ kubectl-krew install mtail

3、使用krew ns插件

## 通过ns 显示所有命名空间以及目前所在的命名空间
$ kubectl-ns
default
flink
kube-node-lease
kube-public
kube-system
monitoring
## 通过ns 切换命名空间
$ kubectl-ns kube-system
Context "kubernetes-admin@kubernetes" modified.
Active namespace is "kube-system".

4、使用krew mtail插件

## 这里我们可以看到前面切换到kube-system命名空间,我们确实可以直接看到此命名空间下的pod
$ kubectl get po
NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-7f4f5bf95d-569h2   1/1     Running   5          113d
calico-node-9h885                          1/1     Running   3          113d
calico-node-r4wck                          1/1     Running   3          113d
calico-node-zlsfx                          1/1     Running   3          113d
coredns-74ff55c5b-h9h4k                    1/1     Running   3          113d
coredns-74ff55c5b-qshsv                    1/1     Running   3          113d
etcd-node1                                 1/1     Running   3          113d
etcd-node2                                 1/1     Running   3          113d
etcd-node3                                 1/1     Running   3          113d
kube-apiserver-node1                       1/1     Running   5          113d
kube-apiserver-node2                       1/1     Running   3          113d
kube-apiserver-node3                       1/1     Running   3          113d
kube-controller-manager-node1              1/1     Running   15         113d
kube-controller-manager-node2              1/1     Running   16         113d
kube-controller-manager-node3              1/1     Running   12         113d
kube-proxy-5lpm9                           1/1     Running   3          113d
kube-proxy-kqrs4                           1/1     Running   3          113d
kube-proxy-ptkvz                           1/1     Running   3          113d
kube-scheduler-node1                       1/1     Running   11         113d
kube-scheduler-node2                       1/1     Running   13         113d
kube-scheduler-node3                       1/1     Running   15         113d
## 然后我们使用mtail 一次性跟踪多个相同标签的pod
$ kubectl-mtail component=etcd
+ kubectl logs --follow etcd-node1 '' --tail=10
+ kubectl logs --follow etcd-node2 '' --tail=10
+ kubectl logs --follow etcd-node3 '' --tail=10
[etcd-node2] 2022-08-06 15:38:41.034312 I | etcdserver/api/etcdhttp: /health OK (status code 200)
[etcd-node2] 2022-08-06 15:38:51.034530 I | etcdserver/api/etcdhttp: /health OK (status code 200)
[etcd-node2] 2022-08-06 15:39:01.034467 I | etcdserver/api/etcdhttp: /health OK (status code 200)
[etcd-node1] 2022-08-06 15:38:38.515923 I | etcdserver/api/etcdhttp: /health OK (status code 200)
[etcd-node1] 2022-08-06 15:38:48.515273 I | etcdserver/api/etcdhttp: /health OK (status code 200)
[etcd-node1] 2022-08-06 15:38:58.513805 I | etcdserver/api/etcdhttp: /health OK (status code 200)
[etcd-node3] 2022-08-06 15:38:36.850658 I | mvcc: finished scheduled compaction at 47047460 (took 39.029057ms)
[etcd-node3] 2022-08-06 15:38:45.623930 I | etcdserver/api/etcdhttp: /health OK (status code 200)
[etcd-node3] 2022-08-06 15:38:55.623279 I | etcdserver/api/etcdhttp: /health OK (status code 200)
## 通过输出我们可以看到确实是同时跟踪了所有etcd pod,这在我们debug 很多pod的时候,可以提升很高的效率




《行业指标体系白皮书》下载地址:https://www.dtstack.com/resources/1057/?src=bbs

《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001/?src=bbs

《数栈V6.0产品白皮书》下载地址:https://www.dtstack.com/resources/1004/?src=bbs

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack   

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群