作者:祝祥 翻译 2023-09-15 07:34:15
云计算
云原生 AIOps 发展非常快。我们可以看到有很多新的项目出现。同时,也会有不少的项目慢慢降低热度而最终消失,但整体是向前快速发展,并成为云原生生态系统最为核心的组成部分之一。
创新互联总部坐落于成都市区,致力网站建设服务有成都网站制作、成都网站设计、网络营销策划、网页设计、网站维护、公众号搭建、微信小程序开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
如今,AI 是各个领域,各个行业的热门话题。基于Kubernetes的DevOps应用开发场景也不例外。尤其是对那些追求自动化,高效开发,高效运维的用户而言。
因此,鉴于最近比较火的 ChatGPT ,与 Kubernetes 结合的相关项目也开始出现。下面也让我们看看最近出现了哪些由OpenAI和ChatGPT支持的开源工具,使K8s的生态更丰富。
下面介绍的这些工具,大多数是为终端 (CLI) 使用而设计的,而不是图形化。
k8sgpt 由 Alex Jones 发起,以 "让每个人都拥有 Kubernetes 能力 "为目标,是同类项目中最著名、最突出的一个。
k8sgpt 目前主要通过 CLI 实现其功能,通过 CLI 可以对集群中的错误进行快速的诊断。 k8sgpt analyze 旨在查找并提示 Kubernetes 集群中出现的问题。使用“分析器 (analyze)”来实现这一功能,它定义了每个K8s对象的逻辑对象以及它可能遇到的问题。例如,Kubernetes Services 的分析器将检查特定服务是否存,以及其端点是否就绪。
发现这样的问题本身并不是什么大事,但其中的逻辑并不简单。当你要求 k8sgpt 解释如何解决现有问题时,神奇的事情就发生了——只要执行 k8sgpt analyze --explain 即可。该命令将要求 AI 能针对你的具体情况提供说明,并显示给你。这些说明将包括执行故障排除的操作,包括可以复制和粘贴来直接执行 kubectl 命令。
图片
针对资源的名称,k8sgpt 拥有隐藏功能(k8sgpt analyze 命令的--anonymize 选项),可以防止敏感数据被发送到 AI 系统。这对我们是很有帮助的。不过目前还没有在所有分析器中实现。
如今,k8sgpt 为 Kubernetes 对象提供了很多内置分析器,包括Node、Pod、PVC、ReplicaSets、Services、Events、Ingresses、StatefulSets、Deployments、CronJobs、NetworkPolicies,甚至 HPA 和 PDB。通过创建自定义分析器来扩展不会太难。
另一个好处是k8sgpt不仅限于单个AI系统。默认支持 OpenAI,让我们访问 GPT-3.5-Turbo 和 GPT-4 语言模型。但是,我们也可以在其他AI提供商中进行选择,目前包括:
K8sgpt 可以用于集成的 API场景,可以利用外部工具,调用它们的功能来解决 Kubernetes 问题。目前唯一实现的集成是比较有名的开源安全扫描程序 Trivy。通过 k8sgpt integration activate trivy 来启用它(假设Trivy Operator 已经安装在集群中),您将拥有一个名为VulnerabilityReport新的k8sgpt过滤器。最后就可以通过 k8sgpt analyze --filter VulnerabilityReport 访问它。
最后还有一项 k8sgpt 的功能是,我们可以将其安装为集群内的 Kubernetes operator。为此,请使用此处提供的 Helm chart。安装并应用 k8sgpt 配置对象(kind:K8sGPT)后,该工具将对集群进行分析,并将扫描结果存储在 Results 对象中。这意味着您可以通过执行 kubectl get results -o json | jq .来查看获取结果。
图片
k8sgpt 在社区中带来的极大的影响。k8sgpt 专注于 K8s 问题的故障诊断,它包含了很多专为此目的设计的即用功能。此外,它还具有以下特点:
该项目由 Robusta 创建,专注于通过将 AI 与 Slack 中显示的警报集成来解决 Kubernetes 问题。
要利用此机器人,您必须遵循以下要求:
如果一切就绪,您就可以通过使用 webhook 将监控告警信息发送到 Slack。该机器人会在 Slack 的警报中添加一个 "Ask ChatGPT "按钮。这样,点击该按钮就可以查询 AI(使用 OpenAI API 密钥),并获得其响应,从而指导您采取响应的建议措施来解决导致该告警的问题。
图片
就目前而言,它就是这么简单。不过,作者建议可以通过向 AI 提供额外数据(如 Pod 日志和 kubectl get 事件输出)来进一步改进其工作方式。
这个项目是在 k8sgpt 前一天诞生的。不同的是,它使用不同方式将人工智能 与 Kubernetes 结合。
该项目是一个kubectl插件,使用OpenAI GPT生成和应用Kubernetes清单。
下面是 README 提供的一个简单的示例:
kubectl ai "create an nginx deployment with 3 replicas"
Attempting to apply the following manifest:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
Use the arrow keys to navigate: ↓ ↑ → ←
? Would you like to apply this? [Reprompt/Apply/Don't Apply]:
+ Reprompt
▸ Apply
Don't Apply
通过 "重新提示 "选项,您可以更改特定参数来完善生成的清单。您可以一次生成几个清单,这对相互关联的对象(如部署和服务)很有意义。如果建议匹配实际需要的时候,就可以轻松地将其应用到集群中。
随后,你还可以修改现有的 Kubernetes 对象,使用 kubectl ai 对其进行缩放或更改其他参数。
至于AI,kubectl-ai 支持 OpenAI API、Azure OpenAI 服务和 LocalAI(7 月 31 日合并的最新新增功能)。默认语言模型为 GPT-3.5-Turbo,也支持 GPT-4。
该插件引入了 kubectl gpt 命令,它的唯一功能就是在 Kubernetes 集群中实现你的需求(即以人类语言描述需求,然后实现功能)。以下是该插件文档中的示例:
kubectl gpt "Print the creation time and pod name of all pods in all namespaces."
kubectl gpt "Print the memory limit and request of all pods"
kubectl gpt "Increase the replica count of the coredns deployment to 2"
kubectl gpt "Switch context to the kube-system namespace"
该工具,既可以输出建议的结果,也可以直接对 K8S 集群的对象进行操作。无论哪种情况,它都会执行命令,但首先会显示该命令,让你可以看到并确认是否愿意继续执行。如果你愿意,也可以禁用这些功能(打印生成的命令/要求确认)。
Kubectl-gpt 需要一个 OpenAI API 密钥才能运行。仅支持 GPT-3,默认启用 GPT-3.5-Turbo。可以使用 OpenAI GPT API 支持的任何人类语言。
该项目由一名独立爱好者开发,自 5 月底以来未进行过任何更新。
此类别中描述的所有项目几乎在同一时间启动。它们也有类似的想法,即在用户操作 Kubernetes 集群时为其提供各种 AI 辅助功能。所有这些项目的统计数据也很相似:一个或几个贡献者、大约 100 个星级和数十次提交。让我们来看看它们都提供了哪些功能以及有何不同。
Kopilot 是后面三个项目中唯一一个用 Go 编写的项目。它包括两个功能:故障排除和审计。那么它们具体的功能是什么了?
图片
该工具将使用 OpenAI API 令牌和提供的问题来进行解答。官方 README 还表示,未来还将提供使用其他人工智能服务的选项。
遗憾的是,自四月初以来,该项目还没有任何提交,这显然令人担忧。
该工具有类似的审计和诊断功能,并通过提供 "chat "命令实现这一点。它能为你带来聊天机器人体验:你可以用英语询问一个特定的操作,这个操作会被转换成一个 kubectl 命令。如果它打印的命令看起来没问题,你就可以确认执行。就像我们在 kubectl-gpt 中体验的那样。
图片
Kopylot还提供了 "ctl "命令,这是kubectl的一个扩展,允许你直接执行任何命令。这项功能的目的似乎是让 Kopylot 成为你使用 Kubernetes 时的最好的助手,而不仅仅是命令 kubectl客户端。
目前,kopylot 仅支持 OpenAI API 密钥,无法使用任何其他人类语言。它依赖于 text-davinci-003 GPT-3.5 模型(硬编码),该模型被视为传统模型。不过在项目的路线图中提到了对使用其他 LLM 模型的支持。
但由于其最新版本的发布日期是 4 月 4 日,因此实现的可能性不大。
Kubernetes Copilot 将多工具功能集提升到了新的高度。除了 Kubernetes 故障排除、审计和执行操作功能外,这个多工具还能根据你的提示生成清单(就像 kubectl-ai 所做的那样)。
顺便说一下,kube-copilot 的审计功能比你想象的要强大。虽然该工具有 "analyze"(分析)命令来揭示 K8s 资源中可能存在的问题(与 kopilot audit 相同),但它也有 "audit"(审计)命令。后者利用 Trivy 扫描仪专门查找 Pod 可能存在的安全问题。
kube-copilot 的另一个特点是它同时提供命令 CLI 和 Web UI。Web UI 非常简单,对某些用户来说可能仍是一个非常喜欢的功能。
图片
最后要提到的 CLI 功能是,可以使用 Google 搜索。也许有些问题用这种方式比用 ChatGPT 更好解决。不过在我看来,这并不是 K8s 相关工具最重要的功能。
至于 AI 支持,kube-copilot 可与 OpenAI API 密钥或 Azure OpenAI 服务配合使用。它允许你使用 GPT-3.5 和 GPT-4 模型。
尽管该工具是由一个人开发的,但它的代码提交情况比较良好。不过,目前既没有公开的路线图,也没有任何问题可以揭示该工具将如何发展。
还有很多基于 OpenAI 的 Kubernetes 工具和服务,下面会简单介绍下。
Kubeshop 的 Botkube 是一个消息传递机器人(即 ChatOps),用于监控和调试 Slack、Mattermost、Discord 或 Microsoft Teams 中的 Kubernetes 集群。它最近添加的 Doctor plugin(https://docs.botkube.io/usage/executor/doctor/) 以两种不同的方式与人工智能连接:1)直接向聊天机器人询问问题;2) 使用“获取帮助”按钮,该按钮显示在错误事件的正下方。机器人将回复有关您的问题或特定问题的 AI 生成的建议。启用此 Botkube 插件需要 OpenAI API 密钥。
图片
metaKube 的 KubeGPT 不是一个 CLI 工具,而是一个在线聊天,可以在 Web 浏览器中与 AI 讨论 Kubernetes。就像常规的 ChatGPT 一样,它可以回答问题(例如,Kubernetes 架构或一些最佳实践),并为您生成特定的 YAML 清单。
图片
实际上,它还能帮我解决其他技术问题。例如,它同时提供有关 Nomad 的信息。它甚至还指导我安装 Ubuntu Linux。不过,它核心点还是在 Kubernetes,因此从未来形式上看,它应该不会对其他请求提供太多帮助。这项服务目前处于测试阶段。
MagicHappen 是一个 PoC operator,“仅用于娱乐和实验”。它定义了一个新的 CRD ( kind: MagicHappens ),允许您用人类语言描述任务——例如,“创建命名空间并进行部署”。当操作员收到包含此描述的 YAML 清单时,它会将其发送到 OpenAI 以获取相关的 YAML,并将此生成的清单应用于群集。请注意,自 4 月以来,没有对该项目进行新的提交。
Kube or Fake 是一个有趣的在线服务,它为您提供了由 ChatGPT 生成的五个 Kubernetes 术语。通过猜谜的方式找到准确的服务。
最后,各种老牌的工具最近也纷纷嵌入了由 OpenAI 支持的功能。实际上,这些工具已经有很多了,本文也只是简单列出了几项,并不包含所有。下面也是一些按照时间列出了一些:
AIOps 给我们带来了巨大的变革。虽然还有不少改进的地方,但开源生态系统已经为 Kubernetes 管理员和用户提供了很多高效的使用方式:
目前,AIOps 发展非常快。我们可以看到有很多新的项目出现。同时,也会有不少的项目慢慢降低热度而最终消失,但整体是向前快速发展,并成为云原生生态系统最为核心的组成部分之一。
原文: https://blog.palark.com/chatgpt-tools-for-kubernetes/
分享文章:K8S中实现AIOps的OpenAPI项目介绍
文章源于:http://www.shufengxianlan.com/qtweb/news25/205725.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联