Dopo aver eliminato tutti i nodi di lavoro, perché i miei pod non iniziano sui nuovi nodi di lavoro?
Risolvere i problemi relativi agli errori di eliminazione dei nodi di lavoro e ai pod bloccati.
Virtual Private Cloud Infrastruttura classica
Hai eliminato tutti i nodi di lavoro nel tuo cluster in modo che non esistano nodi di lavoro. Quindi, hai aggiunto uno o più nodi di lavoro. Quando si esegue il seguente comando, diversi pod per i componenti Kubernetes sono bloccati nello stato
ContainerCreating e i pod calico-node sono bloccati nello stato CrashLoopBackOff.
oc -n calico-system get pods
Quando elimini tutti i nodi di lavoro nel tuo cluster, non esiste alcun nodo di lavoro su cui eseguire il pod calico-kube-controllers. I dati del pod del controller Calico non possono essere aggiornati per rimuovere i dati dei nodi
worker eliminati. Quando il pod del controllore Calico ricomincia a funzionare sui nuovi nodi worker, i suoi dati non sono aggiornati per i nuovi nodi worker e non avvia i pod calico-node.
Elimina le voci nodo di lavoro calico-node esistenti in modo che possano essere creati nuovi pod.
Prima di iniziare: installa la CLI Calico.
-
Esegui il comando
ibmcloud oc cluster confige copia e incolla l'output per impostare la variabile di ambienteKUBECONFIG. Includi le opzioni--admine--networkcon il comandoibmcloud oc cluster config. L'opzione--adminscarica le chiavi per accedere al tuo portfolio dell'infrastruttura ed eseguire i comandi Calico sui tuoi nodi di lavoro. L'opzione--networkscarica il file di configurazione Calico per eseguire tutti i comandi Calico.ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID --admin --network -
Per i pod
calico-nodebloccati nello statoCrashLoopBackOff, prendi nota degli indirizzi IPNODE.oc -n calico-system get pods -o wideIn questo output di esempio, il pod
calico-nodenon può iniziare sul nodo di lavoro10.176.48.106.NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ... calico-kube-controllers-656c5785dd-kc9x2 1/1 Running 0 25h 10.176.48.107 10.176.48.107 <none> <none> calico-node-mkqbx 0/1 CrashLoopBackOff 1851 25h 10.176.48.106 10.176.48.106 <none> <none> coredns-7b56dd58f7-7gtzr 0/1 ContainerCreating 0 25h 172.30.99.82 10.176.48.106 <none> <none> -
Ottieni gli ID delle voci del nodo di lavoro
calico-node. Copia gli ID per solo gli indirizzi IP del nodo di lavoro che hai richiamato nel passo precedente.calicoctl get nodes -o wide -
Utilizzare gli ID per eliminare le voci del nodo di lavoro. Dopo aver eliminato le voci del nodo di lavoro, il controllore Calico ripianifica i pod
calico-nodesui nuovi nodi di lavoro.calicoctl delete node <node_ID> -
Verifica che i pod dei componenti Kubernetes, inclusi i pod
calico-node, siano ora in esecuzione. Potrebbero essere necessari alcuni minuti per la pianificazione dei podcalico-nodee per la creazione di nuovi pod del componente.oc -n calico-system get pods
Per evitare questo errore in futuro, non eliminare mai tutti i nodi di lavoro nel cluster. Esegui sempre almeno un nodo di lavoro nel cluster e se utilizzi Ingress o le rotte per esporre le applicazioni, esegui almeno due nodi di lavoro per zona.