K8sGPT+Ollama:免费的 Kubernetes 自动化诊断方案

2024-06-19 04:20

本文主要是介绍K8sGPT+Ollama:免费的 Kubernetes 自动化诊断方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

周末检查博客草稿,发现了这篇。记得当时是与 Kubernetes 自动化诊断工具:k8sgpt-operator 一起写的,算算过去了一年之久,这拖延症也算是病入膏肓了。原本想使用 K8sGPT + LocalAI 的方案,由于之前试过 Ollama,感觉使用起来也更加友好,而且 Ollama 同样提供了 对 OpenAI API 的支持,索性改成用 Ollama 吧。


介绍 k8sgpt-operator 的文章发布后,有小伙伴反馈 OpenAI 的使用门槛,这个问题确实比较棘手,但也不是不能解决。不过本文并不是介绍如何解决这种问题的,而是介绍 OpenAI 的替代方案: Ollama。

对 k8sgpt 和 k8sgpt-operator 就不做过多介绍了,有兴趣的可以看回 上一篇,去年底 k8sgpt 进入了 CNCF Sandbox。

1. 安装 Ollama

Ollama 是一个开源的大模型工具,使用它可以在本地或云端轻松的安装和运行 多种流量的大模型。它的操作非常友好,只需简单的命令就能运行。在 macOS 上可以通过 homebrew 一键安装:

brew install ollama

当前最新的版本是 0.1.44。

ollama -v 
Warning: could not connect to a running Ollama instance
Warning: client version is 0.1.44

在 Linux 上也可以通过官方的脚本一键安装。

curl -sSL https://ollama.com/install.sh | sh

启动 Ollama,通过环境变量将 Ollama 的监听地址设置为 0.0.0.0,便于后面从容器或者 K8s 集群访问。

OLLAMA_HOST=0.0.0.0 ollama start...
time=2024-06-16T07:54:57.329+08:00 level=INFO source=routes.go:1057 msg="Listening on 127.0.0.1:11434 (version 0.1.44)"
time=2024-06-16T07:54:57.329+08:00 level=INFO source=payload.go:30 msg="extracting embedded files" dir=/var/folders/9p/2tp6g0896715zst_bfkynff00000gn/T/ollama1722873865/runners
time=2024-06-16T07:54:57.346+08:00 level=INFO source=payload.go:44 msg="Dynamic LLM libraries [metal]"
time=2024-06-16T07:54:57.385+08:00 level=INFO source=types.go:71 msg="inference compute" id=0 library=metal compute="" driver=0.0 name="" total="21.3 GiB" available="21.3 GiB"

2. 下载并运行大模型

Llama3 流行的大模型之一,由 Meta 在 4 月开源。Llama3 有两个版本:8B 和 70B。

我是在 macOS 上运行,所以选择 8B 的版本。8B 的版本大小 4.7 GB,网速快的话 3-4 分钟就可以完成下载。

ollama run llama3

我是 m1 pro + 32g 内存,启动 12s 多。

time=2024-06-17T09:30:25.070+08:00 level=INFO source=server.go:572 msg="llama runner started in 12.58 seconds"

执行一次 query 的时间在 14s 左右。

curl http://localhost:11434/api/generate -d '{"model": "llama3","prompt": "Why is the sky blue?","stream": false
}'....
"total_duration":14064009500,"load_duration":1605750,"prompt_eval_duration":166998000,"eval_count":419,"eval_duration":13894579000}

3. 配置 K8sGPT CLI 后端

如果你想测试 k8sgpt-operator,可以跳过这一步。

我们将使用 Ollama REST API 作为 k8sgpt 的后端,作为推理的 provider,这里后端类型选择 localai。因为 LocalAI 与 Ollama 同样兼容 OpenAI API,真正的 provider 还是 Ollama 运行的 Llama。

k8sgpt auth add --backend localai --model llama3 --baseurl http://localhost:11434/v1

同时将其设置成默认的 provider。

k8sgpt auth default --provider localai
Default provider set to localai

测试:

我们在 k8s 上创建一个 pod,使用镜像 image-not-exit

kubectl get po k8sgpt-test
NAME          READY   STATUS         RESTARTS   AGE
k8sgpt-test   0/1     ErrImagePull   0          6s

使用 k8sgpt 对错误进行分析。

k8sgpt analyze --explain --filter=Pod --=default --output=json{"provider": "localai","errors": null,"status": "ProblemDetected","problems": 1,"results": [{"kind": "Pod","name": "default/k8sgpt-test","error": [{"Text": "Back-off pulling image \"image-not-exist\"","KubernetesDoc": "","Sensitive": []}],"details": "Error: Back-off pulling image \"image-not-exist\"\n\nSolution: \n1. Check if the image exists on Docker Hub or your local registry.\n2. If not, create the image using a Dockerfile and build it.\n3. If the image exists, check the spelling and try again.\n4. Verify the image repository URL in your Kubernetes configuration file (e.g., deployment.yaml).","parentObject": ""}]
}

4. 部署并配置 k8sgpt-operator

k8sgpt-operator 可以在集群中开启自动化的 k8sgpt。可以通过 Helm 来安装

helm repo add k8sgpt https://charts.k8sgpt.ai/
helm repo update
helm install release k8sgpt/k8sgpt-operator -n k8sgpt --create-namespace

k8sgpt-operator 提供了两个 CRD:K8sGPT 配置 k8sgpt;Result 输出分析结果。

kubectl api-resources  | grep -i gpt
k8sgpts                                        core.k8sgpt.ai/v1alpha1                true         K8sGPT
results                                        core.k8sgpt.ai/v1alpha1                true         Result

配置 K8sGPT,这里 baseUrl 要使用 Ollama 的 IP 地址。

kubectl apply -n k8sgpt -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:name: k8sgpt-ollama
spec:ai:enabled: truemodel: llama3backend: localaibaseUrl: http://198.19.249.3:11434/v1noCache: falsefilters: ["Pod"]repository: ghcr.io/k8sgpt-ai/k8sgptversion: v0.3.8
EOF

创建 CR K8sGPT 之后,operator 会自动为其创建 Pod。检查 CR Result 也可以看到同样的结果。

kubectl get result -n k8sgpt -o jsonpath='{.items[].spec}' | jq .
{"backend": "localai","details": "Error: Kubernetes is unable to pull the image \"image-not-exist\" due to it not existing.\n\nSolution: \n1. Check if the image actually exists.\n2. If not, create the image or use an alternative one.\n3. If the image does exist, ensure that the Docker daemon and registry are properly configured.","error": [{"text": "Back-off pulling image \"image-not-exist\""}],"kind": "Pod","name": "default/k8sgpt-test","parentObject": ""
}

关注"云原生指北"微信公众号 (转载本站文章请注明作者和出处乱世浮生,请勿用于任何商业用途)

这篇关于K8sGPT+Ollama:免费的 Kubernetes 自动化诊断方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073988

相关文章

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

如何免费的去使用connectedpapers?

免费使用connectedpapers 1. 打开谷歌浏览器2. 按住ctrl+shift+N,进入无痕模式3. 不需要登录(也就是访客模式)4. 两次用完,关闭无痕模式(继续重复步骤 2 - 4) 1. 打开谷歌浏览器 2. 按住ctrl+shift+N,进入无痕模式 输入网址:https://www.connectedpapers.com/ 3. 不需要登录(也就是

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

【机器学习】自然语言处理的新前沿:GPT-4与Beyond

📝个人主页:哈__ 期待您的关注  目录 🔥引言 背景介绍 文章目的 一、GPT-4简介 GPT-4概述 主要特性 局限性和挑战 二、自监督学习的新进展 自监督学习的原理 代表性模型和技术 三、少样本学习和零样本学习 少样本学习的挑战 先进方法 四、跨模态学习 跨模态学习的概念 代表性技术 应用场景 第五部分:可解释性和透明性 AI的可解释

【文末附gpt升级秘笈】腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑

腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑 一、引言 随着人工智能技术的飞速发展,自然语言处理(NLP)和机器学习(ML)在各行各业的应用日益广泛。其中,AI搜索解析能力作为信息检索和知识抽取的核心技术,受到了广泛的关注和研究。腾讯作为互联网行业的领军企业,其在AI领域的探索和创新一直走在前列。近日,腾讯旗下的AI大模型应用——腾讯元宝,迎来了1.1.7版本的升级,新版本在AI搜

云原生容器技术入门:Docker、K8s技术的基本原理和用途

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、容器技术概述 1、什么是容器技术 2、容器技术的历史与发展 3、容器技术与虚拟机的比较 4、容器技术在云原生中的作用 二、Docker基础 1、Docker简介 2、Docker架构 3、Docker与工作原理 三、Kubernetes(k8s)基础 1、

免费内网穿透工具 ,快解析内网穿透解决方案

在IPv4公网IP严重不足的环境下,内网穿透技术越来越多的被人们所使用,使用内网穿透技术的好处有很多。 1:无需公网ip 物以稀为贵,由于可用的公网IP地址越来越少,价格也是水涨船高,一个固定公网IP一年的成本要上万,而使用内网穿透技术则不需要公网IP的支持。 2:提高安全性 使用内网穿透技术,无需在路由器映射端口,我们知道黑客通常会使用端口扫描来寻找攻击对象,不映射端口能大大提高服务器的安全

潜艇伟伟迷杂交版植物大战僵尸2024最新免费安卓+ios苹果+iPad分享

嗨,亲爱的游戏迷们!今天我要给你们种草一个超有趣的游戏——植物大战僵尸杂交版。这款游戏不仅继承了原有经典游戏的核心玩法,还加入了许多创新元素,让玩家能够体验到前所未有的乐趣。快来跟随我一起探索这个神奇的世界吧! 植物大战僵尸杂交版最新绿色版下载链接: https://pan.quark.cn/s/d60ed6e4791c 🔥 创新与经典的完美结合 植物大战僵尸杂交版在保持了原游戏经典玩

【建设方案】基于gis地理信息的智慧巡检解决方案(源文件word)

传统的巡检采取人工记录的方式,该工作模式在生产中存在很大弊端,可能造成巡检不到位、操作失误、观察不仔细、历史问题难以追溯等现象,使得巡检数据不准确,设备故障隐患得不到及时发现和处理。因此建立一套完善的巡检管理系统是企业实现精细化管理的一项重要工作。 基于GIS地理信息系统绘制常规巡检线路,设置线路巡检频率,当线路处于激活状态时,可根据已设置的频率自动生成巡检线路任务,并以消息的形式推送给执行人,

文华财经T8自动化交易程序策略模型指标公式源码

文华财经T8自动化交易程序策略模型指标公式源码: //定义变量 //资金管理与仓位控制 8CS:=INITMONEY;//初始资金 8QY:=MONEYTOT;//实际权益 8QY1:=MIN(MA(8QY,5*R),MA(8QY,2*R)); FXBL:=N1; DBKS:8QY1*N1;//计算单笔允许亏损额度 BZDKS:=MAX(AA-BB,N*1T)*UNIT; SZDKS:=MAX(