K8S 中实现 AIOps 的 OpenAPI 项目介绍
新钛云服已累计为您分享764篇技术干货
背景
如今,AI 是各个领域,各个行业的热门话题。基于Kubernetes的DevOps应用开发场景也不例外。尤其是对那些追求自动化,高效开发,高效运维的用户而言。
因此,鉴于最近比较火的 ChatGPT ,与 Kubernetes 结合的相关项目也开始出现。下面也让我们看看最近出现了哪些由OpenAI和ChatGPT支持的开源工具,使K8s的生态更丰富。
下面介绍的这些工具,大多数是为终端 (CLI) 使用而设计的,而不是图形化。
使用AI对K8进行故障排除
“一个扫描 Kubernetes 集群、诊断和分类问题的工具。它将 SRE 经验编入其分析器,并通过 AI 帮助提取并丰富相关的信息” Website: http://k8sgpt.ai/ GitHub: https://github.com/k8sgpt-ai/k8sgpt GH stars: ~3100 First commit: Mar 21, 2023 ~700 commits, 32 releases, ~40 contributors Language: Go
k8sgpt analyze
旨在查找并提示 Kubernetes 集群中出现的问题。使用“分析器 (analyze)”来实现这一功能,它定义了每个K8s对象的逻辑对象以及它可能遇到的问题。例如,Kubernetes Services 的分析器将检查特定服务是否存,以及其端点是否就绪。k8sgpt analyze --explain
即可。该命令将要求 AI 能针对你的具体情况提供说明,并显示给你。这些说明将包括执行故障排除的操作,包括可以复制和粘贴来直接执行 kubectl 命令。k8sgpt analyze
命令的--anonymize
选项),可以防止敏感数据被发送到 AI 系统。这对我们是很有帮助的。不过目前还没有在所有分析器中实现。Azure OpenAI; Cohere(这个是最近,7月20日添加的); LocalAI — 与 OpenAI 兼容的 API 的本地模型(例如,您可以将其与 llama.cpp 和 ggml 一起使用); FakeAI — 用于模拟 AI 系统行为而无需实际调用它。
k8sgpt integration activate trivy
来启用它(假设Trivy Operator 已经安装在集群中),您将拥有一个名为VulnerabilityReport
新的k8sgpt过滤器。最后就可以通过 k8sgpt analyze --filter VulnerabilityReport
访问它。kind:K8sGPT
)后,该工具将对集群进行分析,并将扫描结果存储在 Results 对象中。这意味着您可以通过执行 kubectl get results -o json | jq .
来查看获取结果。灵活,可利用不同的人工智能系统; 可扩展,可以与自定义分析器和第三方工具集成。
“A ChatGPT bot for Kubernetes issues” GitHub: https://github.com/robusta-dev/kubernetes-chatgpt-bot GH stars: ~900 First commit: Jan 10, 2023 ~40 commits, 7 contributors Language: Python
已经或准备在Prometheus(也支持VictoriaMetrics)和AlertManager之上安装Robusta; 使用Slack。
Kubectl AI驱动的插件
“Kubectl plugin for OpenAI GPT” GitHub: https://github.com/sozercan/kubectl-ai GH stars: ~800 First commit: Mar 20, 2023 ~50 commits, 11 releases, ~10 contributors Language: Go
kubectl
插件,使用OpenAI GPT生成和应用Kubernetes清单。kubectlai "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
Usethe arrow keys to navigate: ↓ ↑ → ←
Would you like to apply this? [Reprompt/Apply/Don't Apply]:
Reprompt
Apply
Apply
kubectl ai
对其进行缩放或更改其他参数。“一个 kubectl 插件,通过使用 GPT 模型从自然语言输入生成 kubectl 命令” GitHub: https://github.com/devinjeon/kubectl-gpt GH stars: ~40 First commit: May 29, 2023 ~20 commits, 3 releases, 1 contributor Language: Go
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"
Kubectl-gp
t 需要一个 OpenAI API
密钥才能运行。仅支持 GPT-3,默认启用 GPT-3.5-Turbo。可以使用 OpenAI GPT API 支持的任何人类语言。适用于kubernetes的AIOps其他工具
- “您的 AI Kubernetes 专家助手”
- GitHub: https://github.com/knight42/kopilot
- GH stars: ~140
- First commit: Mar 19, 2023
- ~40 commits, 3 releases, 3 contributors
- Language: Go
Kopilot 是后面三个项目中唯一一个用 Go 编写的项目。它包括两个功能:故障排除和审计。那么它们具体的功能是什么了?
- 假如,你有一个 Pod 卡在 Pending 或 CrashLoopBackOff 状态。这时候,命令
kopilot diagnose
派上用场。它将向AI寻求帮助,然后给出建议,并解释为什么会发生这种情况。
- 如果不确定部署配置是否完善?
kopilot audit
命令使用类似的方式,将根据最佳实践以及安全要求对其进行检查。
该工具将使用 OpenAI API 令牌和提供的问题来进行解答。官方 README 还表示,未来还将提供使用其他人工智能服务的选项。
遗憾的是,自四月初以来,该项目还没有任何提交,这显然令人担忧。
“面向 Kubernetes 开发人员的 AI 驱动助手” GitHub: https://github.com/avsthiago/kopylot GH stars: ~70 First commit: Mar 28, 2023 ~70 commits, 5 releases, 2 contributors Language: Python
Kopylot
成为你使用 Kubernetes 时的最好的助手,而不仅仅是命令 kubectl
客户端。“由OpenAI提供支持的Kubernetes Copilot” GitHub: https://github.com/feiskyer/kube-copilot GH stars: ~70 First commit: Mar 25, 2023 ~70 commits, 8 releases, 1 contributor Language: Python
其他
kind: MagicHappens
),允许您用人类语言描述任务——例如,“创建命名空间并进行部署”。当操作员收到包含此描述的 YAML 清单时,它会将其发送到 OpenAI 以获取相关的 YAML,并将此生成的清单应用于群集。请注意,自 4 月以来,没有对该项目进行新的提交。ARMO Platform:基于 Kubescape,可根据您以人类语言指定的请求生成自定义控件,然后由 GPT-3 处理。 KubeVela Workflow:允许使用 OpenAI API 验证 Kubernetes 资源(2023 年 4 月) Monokle:实现了人工智能辅助 YAML 资源创建,可以利用人工智能根据提示和验证策略生成 YAML 清单。(2023 年 6 月) Portainer:在其商业版 v2.18.3 中引入了对 ChatGPT 的实验性支持,可就如何部署应用程序提供即用型答案。(2023年7月) Argo CD:Akuity平台上有一个人工智能助理。它由OpenAI API提供支持,可帮助检测某些问题和分析日志,执行您要求的操作,并回答您的问题。(2023年7月)
总结
K8SGPT是最成功的项目,因为它吸引了众多的贡献者和用户。目前专注于故障排除,它非常灵活,扩展性也很高,所以也很希望社区能快速扩大。 如果你想在 Slack 中通过AI 生成如何解决 K8S 中的故障问题的解决建议 ,从而简化监控警报的处理过程,那么 Robusta 的 ChatGPT 机器人和 Kubeshop 的 Botkube 都是不错的 ChatOps 式选择。 如果需要自动化 YAML 清单生成,请尝试 kubectl-ai 或 kube-copilot。
推荐阅读
推荐视频
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。