Kubernetes工具集(持续收集......)

作者: 潘晓华Michael | 来源:发表于2021-04-07 15:42 被阅读0次

    Kubescope cli

    Kubescope cli 是一个可以运行在本地或 Kubernetes 中的工具,可直接从 Docker Daemon 中收集容器指标并可视化。和 cAdvisor 等其他集群指标收集服务一样, kubescope cli 收集指标的周期是 1 秒(而不是 10-15 秒)。如果周期是 10-15 秒,你可能会在测试期间错过一些引发性能瓶颈的问题。如果你使用 cAdvisor 进行测试,每次都要使用新的 Pod 作为测试对象,因为 Kubernetes 在超过资源限制时就会将 Pod 杀死,然后重新启动一个全新的 Pod。而 kubescope cli 就没有这方面的忧虑,它直接从 Docker Daemon 中收集容器指标(你可以自定义收集指标的时间间隔),并使用正则表达式来选择和过滤你想要显示的容器。

    kubescope-cli

    KubeMark

    Kubemark是K8s官方提供的一个对K8s集群进行性能测试的工具。它可以模拟出一个K8s cluster(Kubemark cluster),不受资源限制,从而能够测试的集群规模比真实集群大的多。这个cluster中master是真实的机器,所有的nodes是Hollow nodes。Hollow nodes执行的还是真实的K8s程序,只是不会调用Docker,因此测试会走一套K8s API调用的完整流程,但是不会真正创建pod。

    Kubefwd

    kubefwd 是一个用于端口转发Kubernetes中指定namespace下的全部或者部分pod的命令行工具。 kubefwd 使用本地的环回IP地址转发需要访问的service,并且使用与service相同的端口。 kubefwd 会临时将service的域条目添加到 /etc/hosts 文件中。

    kubefwd

    kubectl-debug

    kubectl-debug 是一个简单的 kubectl 插件, 能够帮助你便捷地进行 Kubernetes 上的 Pod 排障诊断. 背后做的事情很简单: 在运行中的 Pod 上额外起一个新容器, 并将新容器加入到目标容器的 pid, network, user 以及 ipc namespace 中, 这时我们就可以在新容器中直接用 netstat, tcpdump 这些熟悉的工具来解决问题了, 而旧容器可以保持最小化, 不需要预装任何额外的排障工具.

    kubectl-debug

    nsenter命令

    nsenter 命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。
    它的命令语法如下:

    nsenter [options] [program [arguments]]
    
    options:
    -t, --target pid:指定被进入命名空间的目标进程的pid
    -m, --mount[=file]:进入mount命令空间。如果指定了file,则进入file的命令空间
    -u, --uts[=file]:进入uts命令空间。如果指定了file,则进入file的命令空间
    -i, --ipc[=file]:进入ipc命令空间。如果指定了file,则进入file的命令空间
    -n, --net[=file]:进入net命令空间。如果指定了file,则进入file的命令空间
    -p, --pid[=file]:进入pid命令空间。如果指定了file,则进入file的命令空间
    -U, --user[=file]:进入user命令空间。如果指定了file,则进入file的命令空间
    -G, --setgid gid:设置运行程序的gid
    -S, --setuid uid:设置运行程序的uid
    -r, --root[=directory]:设置根目录
    -w, --wd[=directory]:设置工作目录
    
    如果没有给出program,则默认执行$SHELL。
    

    具体使用实例

    $ docker inspect -f {{.State.Pid}} nginx ## 其中nginx为需要查看的容器名,也可以使用用Container ID
    $ nsenter --target 3326 --mount --uts --ipc --net --pid
    

    kt-connect

    kt-connect 是一个可以让开发环境访问K8S集群下应用的工具

    Lens

    Kubernetes可视化管理工具

    Container-diff

    container-diff
    这是一个可对两个镜像进行内容对比的工具。比较本地镜像使用daemon://。例如:

    # container-diff diff daemon://modified_debian:latest remote://gcr.io/google-appengine/debian8:latest
    

    kube-score

    Kube-Score是一款针对Kubernetes的性能及安全分析工具,该工具能够对Kubernetes对象定义进行静态代码分析,并给出提升Kubernetes性能和安全性方面的建议。

    Kube-Score

    kubectx、kubens

    kubectx快速切换管理k8s的集群
    kubens快速切换K8s集群的namespace
    将多个kubectl config配置文件进行合并

    $ KUBECONFIG=a.conf:b.conf:c.conf kubectl config view --flatten > .kube/config
    
    kubectx kubens

    kubecm

    kubecm : Manage your kubeconfig more easily.
    doc

    webkubectl

    webkubectl: 页面版k9s/kubectl

    参考文章

    Kubernetes集群性能测试
    kubemark 搭建测试集群和性能测试
    简化 Pod 故障诊断: kubectl-debug 介绍
    A Select List of Kubernetes Tools

    相关文章

      网友评论

        本文标题:Kubernetes工具集(持续收集......)

        本文链接:https://www.haomeiwen.com/subject/ikivyctx.html