Perché lo stato della rete mostra un errore NHC006 ?

Infrastrutture classiche

Risoluzione dei problemi relativi all'errore di controllo dello stato della rete NHC006.

Quando si controlla lo stato di salute del cluster eseguendo ibmcloud oc cluster health issues --cluster <CLUSTER_ID>, si vede un errore simile al seguente esempio.

ID       Component   Severity   Description
NHC006   Network     Warning    One or more DNS resolvers are not reachable from certain worker nodes.

Se si controllano i dettagli del problema, si vedrà quali risolutori DNS non sono accessibili da quale nodo worker.

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

Questo avviso indica che alcuni nodi worker non sono in grado di raggiungere uno o più resolver DNS. Questo può portare a guasti del DNS e avere un impatto sulla comunicazione del carico di lavoro.

  1. Ispezionare Calico GlobalNetworkPolicies (PNL) elencando tutti i PNL.

    kubectl get globalnetworkpolicies.crd.projectcalico.org
    

    Eseguire il seguente comando per esaminare un criterio specifico.

    kubectl get globalnetworkpolicies.crd.projectcalico.org <policy-name> -o yaml
    
  2. Cercate le regole di egress che bloccano il traffico DNS ( UDP / TCP porta 53). Controllare anche i campi selector che potrebbero includere impropriamente i nodi lavoratori.

  3. Convalidare la raggiungibilità DNS dai nodi worker utilizzando un pod di debug

    kubectl run  -i --tty debug \
      --image=us.icr.io/armada-master/network-alpine:latest \
      --restart=Never \
      --overrides='
    {
      "apiVersion": "v1",
      "spec": {
        "nodeName": "<node-name>"
      }
    }' -- sh
    
  4. Eseguire i seguenti comandi all'interno del pod di debug. Se questi non funzionano, il DNS potrebbe essere bloccato dai criteri o dalle configurazioni di IaaS-level.

    nslookup ibm.com
    
    dig ibm.com
    
  5. Esaminare l'infrastruttura (dispositivi di rete, ACL e così via) e consentire il traffico in uscita dalla porta 53 di UDP e TCP.

  6. Se il problema persiste, contattare il supporto per ulteriore assistenza. Apri un caso di supporto. Nei dettagli del caso, assicurarsi di includere qualsiasi file di registro, messaggio di errore o output di comando pertinente.