介绍
目前 k8s-cluster-inspector 组件可以自动化完成 Kubernetes 集群巡检,并在巡检结果中给出当前集群存在的问题,问题分级,问题类型,问题解决方法。
示例巡检数据结构如下:
{
"name": "colocation-webhook-role",
"namespace": "archimedes",
"kind": "Role",
"message": ["CanDeleteResources"],
"issueCategory": ["Failed to pull image:WorkLoad"],
"normal": false,
"harmRank": ["CanDeleteResources:高危"],
"repairMessages": ["CanDeleteResources:rbac中存在删除用户的风险,修复:在role,clusterrole增加标签:kubernetes.io/bootstrapping='rbac-defaults'"]
}
复制代码
可见,其结果在一般的靠人力的情况下,对于问题的答案有一定限制。最终可能导致用户对结果不信任或者结果无法在可生产的环境中验证。
我们在借助 AI 工具,对于问题答案使用 AI 进行回答。将其结果回填到以上的巡检数据后,示例结果如下:
{
"name": "colocation-webhook-role",
"namespace": "archimedes",
"kind": "Role",
"message": ["CanDeleteResources"],
"issueCategory": ["Failed to pull image:WorkLoad"],
"normal": false,
"harmRank": ["CanDeleteResources:高危"],
"repairMessages": ["CanDeleteResources:集群中遇到镜像拉取报错401,通常是因为镜像仓库需要认证。解决方法如下:
1. **创建镜像拉取秘密**:在Kubernetes中创建一个Secret对象,用于存储镜像仓库的用户名和密码。
复制代码
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
复制代码
2. **在Pod或Deployment中引用Secret**:在Pod或Deployment的配置文件中,通过`imagePullSecrets`字段引用上述创建的Secret。
复制代码
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: <your-private-image>
imagePullSecrets:
- name: regcred
复制代码
3. **应用配置**:更新或创建Pod/Deployment。
复制代码
kubectl apply -f your-pod-or-deployment.yaml
复制代码
这样,Kubernetes在拉取镜像时会使用指定的认证信息,避免401错误。"]}
复制代码
可见数据结果有较为明显的改进。并且借助 AI 工具,可以使得答案具有较高的丰富度和专业性。增加产品力。增强用户体验。
系统流程
主要流程区分:
执行巡检模版
按照用户声明的巡检模版指令执行巡检
开始巡检
开始巡检执行,该过程与 Kubernetes 集群交互
渲染巡检结果
将巡检结果进行渲染,渲染过程中会调用 AI 接口,分装提示词,组装 steam 需要的上下文,将集群问题给到 AI,并获取 AI 回答的结果,补充到结果集中。
上报巡检结果
最终将巡检结果上报到用户指定的 OSS 存储服务器或者本地。
provider 设计
在流程中中,AI provider 设计目的是将 AI 作为 provider 进行设计,可以支持多个 AI 提供方。每个 AI 提供方只需要实现调用方式即可。这在对外交付时,极大的提高了灵活性。
评论