透過部署入口控制器並為每個服務創建入口資源,將 AI Guard 和 LiteLLM 暴露給在您的 Kubernetes 叢集外運行的客戶端。
預設情況下,您只能在叢集內部訪問AI Guard。若要從外部應用程式(例如在叢集外運行的LiteLLM Proxy)調用AI Guard,您必須通過入口控制器將其公開。以下步驟以NGINX Ingress Controller為例,但任何能將TCP流量代理到8080端口的入口控制器都可以使用。
完成以下程序後,請將生成的外部主機名稱用作您整合中的端點 URL。有關 LiteLLM 配置,請參閱LiteLLM 整合。
先決條件:
-
AI Guard 已部署在
trend-ai-security命名空間中請參閱 在 Kubernetes 叢集上部署。 -
Helm 3.0+ 已安裝
-
kubectl 已配置為可存取目標叢集
步驟
- 安裝 NGINX Ingress 控制器。
helm upgrade --install ingress-nginx ingress-nginx \ --repo https://kubernetes.github.io/ingress-nginx \ --namespace ingress-nginx --create-namespace
- 檢索分配給入口控制器的外部主機名稱。
kubectl get svc ingress-nginx-controller -n ingress-nginx \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'在繼續之前,請等待命令返回主機名稱。該值將成為您在接下來步驟中創建的所有 Ingress 資源的基礎 URL。 - 為 AI Guard 建立並套用 Ingress 資源。將以下內容儲存為
ai-guard-ingress.yaml,然後套用它。apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ai-guard-ingress namespace: trend-ai-security annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: ingressClassName: nginx rules: - http: paths: - path: /applyGuardrails pathType: Prefix backend: service: name: ai-guard port: number: 8080kubectl apply -f ai-guard-ingress.yaml
- 如果您在同一叢集中部署 LiteLLM 並且需要外部訪問,請為 LiteLLM 創建並應用一個 ingress 資源。將以下內容儲存為
litellm-ingress.yaml,然後套用。將 <litellm-namespace> 替換為 LiteLLM 部署的命名空間。apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: litellm-ingress namespace: <litellm-namespace> annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: ingressClassName: nginx rules: - http: paths: - path: / pathType: Prefix backend: service: name: litellm port: number: 4000kubectl apply -f litellm-ingress.yaml
- 驗證 AI Guard 是否可通過入口訪問。將 <external-hostname> 替換為上面獲取的主機名稱。
curl http://<external-hostname>/applyGuardrails
AI Guard 的回應確認入口流量路由正確。請在任何需要外部入口 URL 的整合中使用http://<external-hostname>作為端點 URL。
