问题排查太烦心,试试GPT的超能力
IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《问题排查太烦心,试试GPT的超能力》,聊聊,我们一起来看看吧!
使用 Kubernetes 时难免会遇到集群中的问题,需要进行调试和修复,以确保 Pod 和服务能够正常运行。无论你是初学者还是处理复杂环境的专家,调试集群内的进程并不总是易事,可能会变得耗时且繁琐。 在 Kubernetes 中,诊断问题的关键是了解各个组件之间的关系,以及它们如何相互作用。日志记录和监控工具是解决问题的关键,可以帮助你快速定位并解决故障。另外,深入了解 Kubernetes 资源配置和调度机制也是解决问题的重要一环。 当面对问题时,首先要确保你的集群和应用程序的配置是正确的。随后,通过查看日志、监控指标和事件,来定位问题的根源。有时候问题可能涉及到网络配置、存储问题或者是应用程序本身的 bug,需要仔
在云原生环境中,有多种调试解决方案可供选择,可以帮助您轻松访问集群内的信息。但需要注意的是,大部分解决方案并未提供完整的上下文信息。
在这篇博文中,我将向你介绍K8sGPT,这个项目旨在为所有人提供 Kubernetes 的超能力。
K8sGPT 的应用场景
概述
K8sGPT是一项完全开源的项目,由一群经验丰富的云原生生态系统工程师于2023年4月发起。该项目的核心理念是利用人工智能模型,为Kubernetes错误消息和集群洞见提供详尽且情境化的解释。
图片
此项目已被两个组织采用并申请成为 CNCF 沙箱项目。该项目的远景是为 Kubernetes 打造面向任务的机器学习模型。
该项目已经支持多种安装选项和不同的人工智能后端。在这篇文章中,我将向您介绍如何安装和开始使用 K8sGPT、CLI 工具和 Operator,以及 K8sGPT 如何支持其他集成。
安装
根据你的偏好和操作系统,有多种安装选项可用。你可以在K8sGPT文档的安装部分找到不同的选项。
如下所述安装 K8sGPT 的先决条件是在 Mac 上安装Homebrew或在 Windows 计算机上安装 WSL。
接下来,你可以运行以下命令:
brew tap k8sgpt-ai/k8sgptbrew install k8sgpt
其他安装选项
基于 RPM 的安装 (RedHat/CentOS/Fedora)
32位:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.6/k8sgpt_386.rpmsudo rpm -ivh k8sgpt_386.rpm
64 位:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.6/k8sgpt_amd64.rpmsudo rpm -ivh -i k8sgpt_amd64.rpm
基于 DEB 的安装 (Ubuntu/Debian)
32位:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.6/k8sgpt_386.debsudo dpkg -i k8sgpt_386.deb
64 位:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.6/k8sgpt_amd64.debsudo dpkg -i k8sgpt_amd64.deb
要验证 K8sGPT 是否安装正确,你可以检查安装的版本:
k8sgpt versionk8sgpt: 0.3.6 (9c0efe6), built at: unknown
K8sGPT CLI
要查看 K8sGPT 提供的所有命令,请使用 --help 标志:
k8sgpt --help
接下来,我们必须授权AI后端。在本文中,我们将使用 OpenAI。
先决条件
遵循下一节的先决条件是拥有一个OpneAI 帐户和一个正在运行的 Kubernetes 集群,例如 microk8s 或 minikube 就足够了。
拥有 OpneAI 帐户后,你需要访问这个地址https://platform.openai.com/account/api-keys生成新的 API 密钥
或者,你可以运行以下命令,K8sGPT 将在默认浏览器中打开同一地址:
k8sgpt generate
K8sGPT 与 OpenAI 交互需要此密钥。使用新创建的 API 密钥/令牌授权 K8sGPT:
k8sgpt auth add openaiEnter openai Key: openai added to the AI backend provider list
你可以使用以下命令列出你的后端:
k8sgpt auth listDefault:> openaiActive:> openaiUnused:> localai> azureopenai> noopai
接下来,我们将在 Kubernetes 集群中部署一个异常的Deployment,Pod 将成为CrashLoopBackOff状态。以下是 YAML:
apiVersion: apps/v1kind: Deploymentmetadata:name: nginx-deploymentlabels:app: nginxspec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80securityContext:readOnlyRootFilesystem: true
接下来,我们将为示例应用程序创建demo命名空间并安装部署:
kubectl create ns demonamespace/demo createdkubectl apply -f ./deployment.yaml -n demodeployment.apps/nginx-deployment created
现在你将看到我们的演示命名空间中的 Pod 抛出错误:
图片
如果我们查看其中一个 pod 的事件,但是我们不知道具体问题原因:
WarningBackOff 3s (x8 over 87s)kubelet Back-off restarting failed container
因此,我们可以运行 K8sGPT 命令来访问有关这些 pod 出错原因的更多详细信息:
k8sgpt analyse
这将向我们展示 k8sGPT 在集群中发现的问题:
AI Provider: openai0 demo/nginx-deployment-5f4c7db77b-hq74n(Deployment/nginx-deployment)- Error: back-off 1m20s restarting failed cnotallow=nginx pod=nginx-deployment-5f4c7db77b-hq74n_demo(7854b793-21b7-4f81-86e5-dbb4113f64f4)1 demo/nginx-deployment-5f4c7db77b-phbq8(Deployment/nginx-deployment)- Error: back-off 1m20s restarting failed cnotallow=nginx pod=nginx-deployment-5f4c7db77b-phbq8_demo(74038531-e362-45a6-a436-cf1a6ea46d8a)2 demo/nginx-deployment-5f4c7db77b-shkw6(Deployment/nginx-deployment)- Error: back-off 1m20s restarting failed cnotallow=nginx pod=nginx-deployment-5f4c7db77b-shkw6_demo(2603f332-3e1c-45da-8080-e34dd6d956ad)
要接收更多信息以及有关如何解决问题的建议,我们可以使用以下--explain标志:
k8sgpt analyse --explain
附加功能
根据你的集群大小和 K8sGPT 在集群中识别的问题数量,你还可以按特定命名空间和工作负载类型进行过滤。
此外,如果你或你的组织担心 OpenAI 或其他后端接收有关你的工作负载的敏感信息,你可以使用--anonymize规避应用的敏感信息。
与其他工具的集成
云原生生态系统中大多数工具的价值源于它们与其他工具的集成程度。
在撰写本文时,K8sGPT 提供了与 Gafana 和 Prometheus 等可观察性工具的轻松集成。此外,还可以为 K8sGPT 编写插件。维护者提供的第一个插件是Trivy,一个一体化的云原生安全扫描器。
你可以使用以下命令列出所有可用的集成:
k8sgpt integration listActive:Unused:> trivy
接下来,我们要激活 Trivy 集成:
k8sgpt integration activate trivy
这将在集群内安装 Trivy Operator(如果尚未安装):
图片
激活集成后,我们可以通过 k8sgpt 过滤器,使用 Trivy 创建的漏洞报告作为 K8sGPT 分析的一部分:
❯ k8sgpt filters listActive:> Pod> VulnerabilityReport (integration)Unused:> Deployment> ReplicaSet> Node> Service> Ingress> StatefulSet> CronJob> PersistentVolumeClaim> HorizontalPodAutoScaler> PodDisruptionBudget> NetworkPolicy
过滤器对应于 k8sgpt 代码中的特定分析器。分析器仅查看相关信息,例如最关键的漏洞。
要使用 VulnerabilityReport 过滤器,请使用以下命令:
k8sgpt analyse --filter=VulnerabilityReport
(FIXME)与之前类似,我们也可以要求 K8sGPT 对扫描提供进一步的解释:
k8sgpt analyse --filter=VulnerabilityReport --explain
K8sGPT Operator
虽然 CLI 工具为集群管理员提供了对其基础设施和工作负载执行即席扫描的功能,但 K8sGPT Operator 在集群中全天候 (24/7) 运行。它是 Kubernetes 原生的,这意味着它作为 Kubernetes 自定义资源运行,并生成作为 YAML 清单存储在集群中的报告。
要安装 Operator,请按照以下命令进行操作:
helm repo add k8sgpt https://charts.k8sgpt.ai/helm repo updatehelm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace
如果你想将 K8sGPT 与 Prometheus 和 Grafana 集成,你可以通过向上面的安装提供values.yaml 清单来使用略有不同的安装:
serviceMonitor:enabled: trueGrafanaDashboard:enabled: true
然后安装 Operator 或更新现有安装:
helm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace --values values.yaml
在本例中,我们告诉 K8sGPT 还安装一个 ServiceMonitor,它将扫描报告中的指标发送到 Prometheus,并为 K8sGPT 创建一个仪表板。如果你使用了此安装,则还需要安装 kube-prometheus-stack Helm Chart 才能访问 Grafana 和 Prometheus。这可以通过以下命令来完成:
helm repo add prometheus-community https://prometheus-community.github.io/helm-chartshelm repo updatehelm install prom prometheus-community/kube-prometheus-stack -n k8sgpt-operator-system --set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false
此时,你应该在集群内运行 K8sGPT Operator 和 Prometheus Stack Helm Chart(也是 Kubernetes Operator)。
与我们需要向 CLI 提供 OpenAI API 密钥的方式类似,我们需要使用 API 密钥创建 Kubernetes 密钥。为此,请使用与之前相同的密钥,或者在你的 OpenAI 帐户上生成一个新密钥。
要生成 Kubernetes 密钥,请将你的 OpenAI 密钥粘贴到以下命令中:
export OPENAI_TOKEN=<YOUR API KEY HERE>kubectl create secret generic k8sgpt-sample-secret --from-literal=openai-api-key=$OPENAI_TOKEN -n k8sgpt-operator-system
然后,我们需要配置 K8sGPT Operator 以了解要使用哪个版本的 K8sGPT 以及哪个 AI 后端:
apiVersion: core.k8sgpt.ai/v1alpha1kind: K8sGPTmetadata:name: k8sgpt-samplespec:model: gpt-3.5-turbobackend: openainoCache: falseversion: v0.3.2enableAI: truesecret:name: k8sgpt-sample-secretkey: openai-api-key
现在,我们需要将此文件应用到我们的 K8sGPT 集群命名空间:
kubectl apply -f k8sgpt-resource.yaml -n k8sgpt-operator-system
几秒钟内,Operator 将创建新结果:
kubectl get results -n k8sgpt-operator-system
以下是不同命令的屏幕截图,你可以按照这些命令从 K8sGPT Operator 查看结果报告:
从 K8sGPT Operator 查看结果报告
最后,我们将看一下 Grafana 仪表板。端口转发 Grafana 服务以通过 localhost 访问它:
kubectl port-forward service/prom-grafana -n prom 3000:80
打开 localhost:3000,然后导航到 Dashboards>K8sGPT Overview,然后你将看到包含结果的仪表板:
Grafana 中的 K8sGPT 仪表板
参考
- 1. https://k8sgpt.ai/
- 2. https://docs.k8sgpt.ai/
- 3. https://github.com/k8sgpt-ai
到这里,我们也就讲完了《问题排查太烦心,试试GPT的超能力》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于GPT,云原生的知识点!

- 上一篇
- MySQL.proc表的结构与用途详细解读

- 下一篇
- 查找所有扩展名的文件的golang文件名正则表达式是什么?
-
- 科技周边 · 人工智能 | 27分钟前 | 豆包AI 日记写作
- 豆包AI日记写作超详细教程,手把手教你轻松上手
- 109浏览 收藏
-
- 科技周边 · 人工智能 | 28分钟前 |
- 豆包AI手把手教你用Python写数据库连接代码
- 251浏览 收藏
-
- 科技周边 · 人工智能 | 31分钟前 | java 编程
- 豆包AI手把手教你SpringSecurity安全配置,超详细教程曝光!
- 309浏览 收藏
-
- 科技周边 · 人工智能 | 31分钟前 |
- AI生成证件照通关秘籍,签证照片标准全知道
- 442浏览 收藏
-
- 科技周边 · 人工智能 | 33分钟前 | 通义千问 学习计划
- 通义千问个性化学习计划这样制定才高效
- 224浏览 收藏
-
- 科技周边 · 人工智能 | 38分钟前 | Firefly 人物皮肤渲染
- Firefly超写实人物皮肤绘制全攻略!附详细教程
- 212浏览 收藏
-
- 科技周边 · 人工智能 | 39分钟前 |
- 苹果亲们集合!DeepSeek安装启用保姆级教程
- 241浏览 收藏
-
- 科技周边 · 人工智能 | 40分钟前 | 视频制作 知识科普
- 一帧秒创玩转知识科普视频,手把手教你剧本创作+画面搭配秘籍!
- 211浏览 收藏
-
- 科技周边 · 人工智能 | 41分钟前 |
- 豆包AI这样优化短视频脚本,分镜提示词超详细攻略
- 163浏览 收藏
-
- 科技周边 · 人工智能 | 51分钟前 |
- DeepSeek赋能OneNote手写识别,效率起飞不是梦!
- 444浏览 收藏
-
- 科技周边 · 人工智能 | 55分钟前 | 编程语言 选择
- 豆包AI手把手教你设计Python项目结构模板,超easy!
- 209浏览 收藏
-
- 科技周边 · 人工智能 | 1小时前 | java php
- 豆包AI手把手教你写错误处理代码,超简单上手!
- 100浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 茅茅虫AIGC检测
- 茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
- 96次使用
-
- 赛林匹克平台(Challympics)
- 探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
- 100次使用
-
- 笔格AIPPT
- SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
- 106次使用
-
- 稿定PPT
- 告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
- 101次使用
-
- Suno苏诺中文版
- 探索Suno苏诺中文版,一款颠覆传统音乐创作的AI平台。无需专业技能,轻松创作个性化音乐。智能词曲生成、风格迁移、海量音效,释放您的音乐灵感!
- 99次使用
-
- GPT-4王者加冕!读图做题性能炸天,凭自己就能考上斯坦福
- 2023-04-25 501浏览
-
- 单块V100训练模型提速72倍!尤洋团队新成果获AAAI 2023杰出论文奖
- 2023-04-24 501浏览
-
- ChatGPT 真的会接管世界吗?
- 2023-04-13 501浏览
-
- VR的终极形态是「假眼」?Neuralink前联合创始人掏出新产品:科学之眼!
- 2023-04-30 501浏览
-
- 实现实时制造可视性优势有哪些?
- 2023-04-15 501浏览