写点什么

Kubernetes 调试终极武器: K8sGPT

作者:俞凡
  • 2023-12-27
    上海
  • 本文字数:2310 字

    阅读完需:约 8 分钟

K8sGPT 结合了 GPT 的 AI 能力,为智能化分析和运维 Kubernetes 集群提供了开箱即用的解决方案。原文: K8s Tools — K8sGPT



随着人工智能和机器学习技术的进步,企业和组织越来越多的探索创新战略,以求利用这些能力来获得竞争优势。


K8sGPT就是该领域最强大的工具之一,它是一种基于 k8s 的 GPT 模型,结合了 k8s 编排的优点以及 GPT 模型复杂的自然语言处理能力。

什么是 K8sGPT?

先看一个例子:



根据 K8sGPT 官网解释:


K8sgpt 是一个用英语扫描 kubernetes 集群、诊断和分类问题的工具。它将 SRE 经验编入其分析程序,帮助提取最相关的信息,并用 AI 充实其内容。

K8sGPT 是干什么用的?

K8sGPT 最近已经作为沙盒项目提交给云原生计算基金会(CNCF),展示了其对云原生社区的潜在价值。


CNCF 目前正在对其进行初步评估,这是令人鼓舞的进展,体现了对创建满足 Kubernetes 用户需求的工具的奉献精神。



K8sGPT 可以用作:


  • 工作负载运行状况分析: 查找工作负载的关键问题

  • 快速分类,AI 分析: 检查或用 AI 深入分析集群

  • 辅助理解: 把复杂信号转化为容易理解的建议

  • 安全 CVE 审查: 连接到 Trivy 等扫描程序并对问题进行分类

K8sGPT 如何工作?

K8sGPT 使用一组专门设计的分析器来检测和简化 Kubernetes 集群中诊断和解决问题的任务。这些分析器基于 SRE 的智慧经验编码,擅长提供高度准确和相关的信息。


下面是一些内置分析器:


  • PodAnalyzer: 该工具仔细检查 pod 设置,搜索可能导致复杂问题的潜在问题,例如 pod 故障或过度使用资源。

  • PVCAnalyzer: 该工具检查持久卷声明(Persistent Volume Claim, PVC)的配置,搜索可能导致数据丢失或其他存储相关挑战的任何差异。

  • ServiceAnalyzer: 这个工具探测服务设置,寻找任何可能导致服务中断或性能下降的潜在问题。

  • DeploymentAnalyzer: 该工具检查 Deployment 配置,找出可能导致资源利用效率低下的任何问题。

  • NodeAnalyzer: 该工具检查 K8s 集群节点,识别与节点运行状况、使用情况和容量相关的任何潜在问题。

如何安装 K8sGPT?

前置条件
  1. 确保正确安装了k8sgpt

  2. 现成的 K8s 集群

  3. OpenAI 提供的 API 密钥作为默认 AI 供应商

Homebrew

使用以下命令安装 K8sGPT:


$ brew install k8sgpt
复制代码
基于 RPM 的安装
$ curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.2.7/k8sgpt_amd64.rpm$ sudo rpm -ivh -i k8sgpt_amd64.rpmPreparing...                          ################################# [100%]Updating / installing...   1:k8sgpt-0:0.2.7-1                 ################################# [100%]
复制代码
基于 DEB 的安装
$ curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.2.7/k8sgpt_amd64.deb$ sudo dpkg -i k8sgpt_amd64.deb
复制代码
基于 APK 的安装
$ curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.2.7/k8sgpt_amd64.apk$ apk add k8sgpt_amd64.apk
复制代码
验证安装
$ k8sgpt versionk8sgpt version 0.2.7
复制代码
设置认证

注意: 假设已经拥有 OpenAI API-key


$ k8sgpt authUsing openai as backend AI providerEnter openai Key: New provider addedkey added
复制代码

如何使用 K8sGPT?

一旦完成 OpenAI 身份验证,就可以通过输入以下命令开始使用 K8sGPT:


$ k8sgpt
Kubernetes debugging powered by AI
Usage: k8sgpt [command]
Available Commands: analyze This command will find problems within your Kubernetes cluster auth Authenticate with your chosen backend completion Generate the autocompletion script for the specified shell filters Manage filters for analyzing Kubernetes resources generate Generate Key for your chosen backend (opens browser) help Help about any command integration Intergrate another tool into K8sGPT serve Runs k8sgpt as a server version Print the version number of k8sgpt
Flags: --config string config file (default is $HOME/.k8sgpt.yaml) -h, --help help for k8sgpt --kubeconfig string Path to a kubeconfig. Only required if out-of-cluster. (default "/mnt/efs/data/home/txu/.kube/config") --kubecontext string Kubernetes context to use. Only required if out-of-cluster.
Use "k8sgpt [command] --help" for more information about a command.
复制代码


最常用的命令是k8sgpt analyze:


$ k8sgpt analyze --explain
复制代码



也可以输出JSON格式:



查看可用的过滤器:


$ k8sgpt filters listActive:> Service> CronJob> Node> Pod> Deployment> Ingress> StatefulSet> ReplicaSet> PersistentVolumeClaimUnused:> HorizontalPodAutoScaler> PodDisruptionBudget> NetworkPolicy
复制代码

额外参数

filters
 $ k8sgpt analyze --filter=Service $ k8sgpt analyze --namespace=default
复制代码
anonymize
$  k8sgpt analyze --anonymize
复制代码
其他 AI 后端
$  k8sgpt auth -b 
复制代码

结论


随着企业和组织不断探索创造性方法来利用 AI 和机器学习的力量,K8sGPT 正在成为帮助他们实现目标的有力工具。利用优越的自然语言处理能力和 K8s 编排优势,K8sGPT 有可能彻底改变我们分析和理解文本数据的方法,从而促进众多领域的创新。




你好,我是俞凡,在 Motorola 做过研发,现在在 Mavenir 做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。为了方便大家以后能第一时间看到文章,请朋友们关注公众号"DeepNoMind",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!

发布于: 刚刚阅读数: 5
用户头像

俞凡

关注

公众号:DeepNoMind 2017-10-18 加入

俞凡,Mavenir Systems研发总监,关注高可用架构、高性能服务、5G、人工智能、区块链、DevOps、Agile等。公众号:DeepNoMind

评论

发布
暂无评论
Kubernetes调试终极武器: K8sGPT_人工智能_俞凡_InfoQ写作社区