Ansichten:
Wenn Sie einen Bare-Metal-Kubernetes-Cluster oder einen Cloud-Anbieter verwenden, der LoadBalancer-Dienste nicht unterstützt, können Sie MetalLB verwenden, um Ihren ICAP-Dienst bereitzustellen.

Prozedur

  1. Installieren Sie MetalLB in MicroK8s
    # Enable MetalLB with an appropriate IP range for your network
    # Replace the IP range with one suitable for your network
    microk8s enable metallb:192.168.1.200-192.168.1.220
    
    Hinweis
    Hinweis
    Beim Auswählen des IP-Bereichs:
    • Stellen Sie sicher, dass es sich innerhalb Ihres lokalen Subnetzes befindet
    • Vermeiden Sie Konflikte mit dem Bereich Ihres DHCP-Servers
    • Wählen Sie IPs, die nicht bereits anderen Geräten zugewiesen sind
  2. Aktualisieren Sie my-values.yaml mit folgendem Inhalt:
    scanner:
      # Other scanner settings remain unchanged
      externalService:
        enabled: true
        type: LoadBalancer  # This creates an NLB
        annotations: {}
        icapPort: 1344
    
  3. Aktualisieren Sie die Bereitstellung mit der MetalLB-Konfiguration:
    Run the following:
    helm upgrade my-release visionone-filesecurity/visionone-filesecurity \
      -n visionone-filesecurity \
      -f my-values.yaml
    
  4. Überprüfen Sie die MetalLB-Verteilung:
    # Check the service status
    kubectl get service -n visionone-filesecurity | grep scanner-lb
    
    # Get the external IP assigned by MetalLB
    EXTERNAL_IP=$(kubectl get service -n visionone-filesecurity my-release-visionone-filesecurity-scanner-lb -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
    echo "Your MetalLB external IP is: $EXTERNAL_IP"
    
  5. Installieren und verwenden Sie den c-icap-client, um Ihre Verbindung zu testen:
    # Install c-icap-client
    sudo apt-get install c-icap
    
    # Test with file scanning
    c-icap-client -i $EXTERNAL_IP -s scan -p 1344 -f sample.txt -x "X-scan-file-name: sample.txt"