ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何在 Kubernetes 上用 Helm 部署生产环境 Opik 并配置 Ingress 外部访问

如何在 Kubernetes 上用 Helm 部署生产环境 Opik 并配置 Ingress 外部访问 如何在 Kubernetes 上用 Helm 部署生产环境 Opik 并配置 Ingress 外部访问【免费下载链接】comet-llmDebug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards.项目地址: https://gitcode.com/GitHub_Trending/co/comet-llm目标是在 Kubernetes 集群上用 Helm 部署一套生产可用的 Opik并让前端通过 Ingress 对外暴露一个域名。整条路径来自仓库内的两份文档Kubernetes deployment 和 Helm chart README。文档明确说明生产部署推荐使用 Opik 官方维护的 Helm chart该 chart 在 Comet 的托管云服务中经过验证。适用前提集群中已安装 Helm 3.10 或 Helm 4.x、kubectl可选安装 kubectx/kubens 用于在集群和命名空间之间切换。如果打算在本地验证文档要求本地有 Docker 和 minikube。准备工作先确认工具链# 需要 Helm 3.10 或 Helm 4.x、kubectl可选 kubectx/kubens helm version kubectl version如果要在本地起集群验证按 chart README 启动 minikubeminikube start这份 chart 的依赖子 chartmysql、altinity-clickhouse-operator、minio、redis、zookeeper会在安装时一并引入不需要手动预装各组件镜像默认从ghcr.io/comet-ml/opik拉取见 values.yaml 中的registry默认值。第一步用 Helm 安装 Opik添加官方 Helm 仓库并更新索引helm repo add opik https://comet-ml.github.io/opik/ helm repo update把VERSION设为要安装的 Opik 版本也可以留为latest。官方文档推荐的安装命令会把 backend、python-backend、frontend 三个组件的镜像 tag 以及沙箱执行器镜像 tag 统一设为同一版本VERSIONlatest helm upgrade --install opik -n opik --create-namespace opik/opik \ --set component.backend.image.tag$VERSION \ --set component.python-backend.image.tag$VERSION \ --set component.python-backend.env.PYTHON_CODE_EXECUTOR_IMAGE_TAG$VERSION \ --set component.frontend.image.tag$VERSION需要锁定 chart 版本时可以先列出可用版本再选择helm search repo opik/opik --versions官方建议始终安装最新版 Opik Helm chart。第二步本地验证部署结果Ingress 配置好之前先用 port-forward 确认服务本身能跑起来kubectl port-forward -n opik svc/opik-frontend 5173然后打开http://localhost:5173访问 Opik调用 API 的地址是http://localhost:5173/api。安装完成时 Helm 会输出后续排查用的两条命令安装后用它们检查 release 与所有已创建资源的状态helm status -n opik opik helm -n opik get all opik第三步为 opik-frontend 配置 Ingress 外部访问默认情况下所有组件的 ingress 都是关闭的component.组件.ingress.enabled: false。chart 会按组件渲染 Ingress 资源只有当组件本身启用且其ingress.enabled为 true 时才会生成资源名为opik-组件后端指向同名 Serviceingress 模板。按官方文档生产环境通过 values 文件配置前端 Ingresscomponent: frontend: ingress: enabled: true ingressClassName: your ingress class annotations: your annotations hosts: - host: opik.example.com paths: - path: / port: 5173 pathType: Prefix # For TLS configuration (optional) tls: enabled: true hosts: # Optional - defaults to hosts from rules if not specified - opik.example.com secretName: your-tls-secret # Optional - omit if using cert-manager or similar其中需要你替换的占位符your ingress class集群中实际存在的 IngressClass 名称your annotations你的 Ingress 控制器需要的注解可留空{}opik.example.com你为 Opik 分配的域名tls整段是可选的。启用 TLS 后hosts缺省时默认取 rules 中的 hostsecretName在由 cert-manager 等自动签发证书时可省略。两个容易踩到的点都来自模板本身模板里ingressClassName的写法是{{ default alb ... }}也就是说不设置时默认值是alb。如果你的集群用的是 nginx 等其他 IngressClass必须显式设置ingressClassName否则渲染出的 Ingress 会指向不存在的 controller。paths[].port填的是后端 Service 的端口号前端 Service 是5173与 ingress 渲染测试 中断言的渲染结果一致启用component.frontend.ingress.enabled并设置ingressClassName: nginx、hostopik.example.com时会渲染出名为opik-frontend的 Ingressspec.rules[0].http.paths[0].backend.service指向opik-frontend:5173。应用方式与第一步相同只是加一个-f指向你的 values 文件helm upgrade --install opik -n opik -f ./opik-values.yaml opik/opik \ --set component.backend.image.tag$VERSION \ --set component.python-backend.image.tag$VERSION \ --set component.python-backend.env.PYTHON_CODE_EXECUTOR_IMAGE_TAG$VERSION \ --set component.frontend.image.tag$VERSION升级或安装完成后仍然可以用helm -n opik get all opik查看生成的 Ingress 资源配置生效后前端即可通过 values 中配置的域名访问。可选分支官方文档的Configure external access部分还展示了为 ClickHouse 配置 LoadBalancer 型 Service 的写法clickhouse.service.serviceTemplate: clickhouse-cluster-svc-lb-template加注解。这属于对外暴露分析数据库的独立需求只有确实需要从集群外直连 ClickHouse 时才需要加上与前端 Ingress 互不影响。版本一致性检查文档提醒Python SDK 版本要和 Kubernetes 部署版本保持一致否则可能出现兼容问题。核对方式UI 版本登录 Opik 后点右上角用户菜单查看当前部署版本SDK 版本pip show opik。两者不一致时文档给出两个方向升级 SDKpip install --upgrade opikVERSION版本对齐部署版本或把 Helm 安装命令里的VERSION变量改成与 SDK 一致的版本后重新执行安装命令。已知问题与卸载安装时报下面这类错误ERROR: Exception Primary Reason: Code: 225. DB::Exception: Cant create replicated table without ZooKeeper. (NO_ZOOKEEPER)文档给出的处理方式是确认你使用的是最新版 Opik Helm chart该版本默认会运行 zookeeperchart 依赖中已包含zookeeper子 chart 且默认启用。另外如果计划做 ClickHouse 多副本高可用Helm 安装输出NOTES.txt中有明确警告全新安装必须先用clickhouse.replicasCount: 1装完并等 opik-backend Ready迁移全部应用之后再改成 2 副本执行 upgrade直接以多副本全新安装会导致早期迁移无法在多个副本上完成opik-backend 永远无法 Ready。已迁移完成的多副本集群在升级时不受此限制。需要删除整套安装时按文档顺序执行先移除 ClickHouse 资源上的 finalizer再卸载 releasekubectl patch -n opik chi opik-clickhouse --type json --patch[ { op: remove, path: /metadata/finalizers } ] helm uninstall opik -n opik这两条命令会终止 opik 命名空间下的安装并释放资源执行前确认opik命名空间和opik-clickhouse这个 ClickHouseInstallation 资源确实是你当前要删除的那套环境。【免费下载链接】comet-llmDebug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards.项目地址: https://gitcode.com/GitHub_Trending/co/comet-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表