IBM Cloud Docs
Warum zeigt der Netzwerkstatus einen NHC003 Fehler an?

Warum zeigt der Netzwerkstatus einen NHC003 Fehler an?

Virtuelle Private Cloud Klassische Infrastruktur

Wenn Sie den Status Ihres Clusters überprüfen, indem Sie ibmcloud ks cluster health issues --cluster <CLUSTER_ID> ausführen, erhalten Sie eine Fehlermeldung wie im folgenden Beispiel.

ID       Component   Severity   Description
NHC003   Network     Warning    Some worker nodes in the cluster can not reach container image registries to pull images.

Wenn Sie die Details des Problems überprüfen, sehen Sie, auf welche Registrierung von welchem Arbeitsknoten aus nicht zugegriffen werden kann.

ibmcloud ks cluster health issue get --cluster <CLUSTER_ID> --issue NHC003

Diese Warnung bedeutet, dass einige der Arbeitsknoten nicht auf externe Container-Registrierungen wie Docker Hub, Quay oder IBM Cloud Container Registry zugreifen können, was sie daran hindert, die für Ihre Workloads erforderlichen Images zu ziehen.

Stellen Sie sicher, dass die Arbeitsknoten Zugang zum Internet haben und externe Container-Registrierungen erreichen können. Überprüfen Sie auch die Netzwerkrichtlinien, Sicherheitsgruppen und Firewall-Einstellungen.

  1. Prüfen Sie von einem Pod aus, der auf dem betroffenen Knoten läuft, ob der Knoten auf die Registrierung zugreifen kann. Starten Sie einen Debug-Pod.

    kubectl run  -i --tty debug \
     --image=us.icr.io/armada-master/network-alpine:latest \
     --restart=Never \
     --overrides='
    {
      "apiVersion": "v1",
      "spec": {
        "nodeName": "<node-name>"
      }
    }' -- sh
    

    Versuchen Sie dann, innerhalb des Pods auf eine Container-Registrierung zuzugreifen.

    wget <registry_address>
    

    Oder verwenden Sie curl, falls verfügbar:

    curl -I <registry_address>
    
  2. Überprüfen Sie, ob die Arbeitsknoten über einen ausgehenden Internetzugang verfügen, indem Sie vom Debug-Pod aus einen Traceroute oder Ping ausführen.

    traceroute <registry_address>
    
    ping <registry_address>
    
  3. Überprüfen Sie, ob es restriktive Netzwerkrichtlinien und globale Netzwerkrichtlinien gibt.

    kubectl get networkpolicies --all-namespaces
    
     kubectl get globalnetworkpolicies.crd.projectcalico.org
    

    Suchen Sie nach Richtlinien, die den ausgehenden Datenverkehr von Arbeitsknoten zum Internet oder zu bestimmten Registrierungsdomänen blockieren.

  4. Überprüfen Sie die Sicherheitsgruppen Ihres Clusters und stellen Sie sicher, dass ausgehender Datenverkehr erlaubt ist. Überprüfen Sie für jeden Arbeitsknoten die Sicherheitsgruppe. Stellen Sie sicher, dass keine Regeln vorhanden sind, die HTTPS (TCP-Port 443) oder DNS (UDP-Port 53) blockieren.

  5. Überprüfen Sie Ihre Infrastruktur (Netzwerkgeräte, Sicherheitsgruppen, ACLs usw.) und aktivieren Sie bei Bedarf den ausgehenden Zugriff.

  6. Wenn Sie private Containerregistrierungen verwenden, überprüfen Sie, ob die DNS-Auflösung und die Authentifizierung funktionieren.

  7. Warten Sie nach der Anwendung der Korrekturen einige Minuten und überprüfen Sie den Zustand des Clusters erneut.

  8. Wenn das Problem weiterhin besteht, wenden Sie sich bitte an den Support, um weitere Unterstützung zu erhalten. Öffnen Sie einen Supportfall. Fügen Sie den Falldetails unbedingt alle relevanten Protokolldateien, Fehlermeldungen oder Befehlsausgaben bei.