Ansichten:

Expose KI Guard und LiteLLM für Clients, die außerhalb Ihres Kubernetes-Clusters laufen, indem Sie einen Ingress-Controller bereitstellen und Ingress-Ressourcen für jeden Dienst erstellen.

Standardmäßig können Sie den KI Guard nur innerhalb des Clusters erreichen. Um den KI Guard von einer externen Anwendung aus aufzurufen, wie z.B. einem LiteLLM-Proxy, der außerhalb des Clusters läuft, müssen Sie ihn über einen Ingress-Controller freigeben. Die folgenden Schritte verwenden den NGINX Ingress Controller als Beispiel, aber jeder Ingress-Controller, der TCP-Verkehr auf Port 8080 weiterleiten kann, funktioniert.
Nachdem Sie das untenstehende Verfahren abgeschlossen haben, verwenden Sie den resultierenden externen Hostnamen als Endpunkt-URL in Ihrer Integration. Für die LiteLLM-Konfiguration siehe LiteLLM-Integration.
Voraussetzungen:

Prozedur

  1. Installieren Sie den NGINX Ingress Controller.
    helm upgrade --install ingress-nginx ingress-nginx \
      --repo https://kubernetes.github.io/ingress-nginx \
      --namespace ingress-nginx --create-namespace
  2. Rufen Sie den externen Hostnamen ab, der dem Ingress-Controller zugewiesen ist.
    kubectl get svc ingress-nginx-controller -n ingress-nginx \
      -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
    Warten Sie, bis der Befehl einen Hostnamen zurückgibt, bevor Sie fortfahren. Der Wert wird zur Basis-URL für alle Ingress-Ressourcen, die Sie in den folgenden Schritten erstellen.
  3. Erstellen und Anwenden einer Ingress-Ressource für KI Guard.
    Speichern Sie das Folgende als ai-guard-ingress.yaml und wenden Sie es dann an.
    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: 8080
    kubectl apply -f ai-guard-ingress.yaml
  4. Wenn Sie LiteLLM im selben Cluster bereitstellen und es externen Zugriff benötigt, erstellen und wenden Sie eine Ingress-Ressource für LiteLLM an.
    Speichern Sie das Folgende als litellm-ingress.yaml und wenden Sie es dann an. Ersetzen Sie <litellm-namespace> durch den Namespace, in dem LiteLLM bereitgestellt ist.
    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: 4000
    kubectl apply -f litellm-ingress.yaml
  5. Überprüfen Sie, ob der KI-Schutz über den Ingress erreichbar ist.
    Ersetzen Sie <external-hostname> durch den oben abgerufenen Hostnamen.
    curl http://<external-hostname>/applyGuardrails
    Eine Antwort von KI Guard bestätigt, dass der Ingress den Datenverkehr korrekt leitet. Verwenden Sie http://<external-hostname> als Endpunkt-URL in jeder Integration, die eine externe Ingress-URL erfordert.