拓冰建站拓冰建站
首页 / 资讯中心 / 正文

如何在 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),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门