Come faccio a risolvere i problemi del controller etcdadm in EKS Anywhere?
Voglio controllare i log nei pod etcdadm per trovare indizi per risolvere i problemi di errore del bootstrap ETCD.
Breve descrizione
Se i tuoi nodi Amazon Elastic Kubernetes Service (Amazon EKS) Anywhere presentano un errore di avvio, controlla i log per i pod etcdadm. Inoltre, controlla i log dei pod etcd che hai creato per un cluster etcd in stack.
Per un ulteriore debug, accedi a una qualsiasi delle macchine virtuali (VM) etcd. Se non hai creato una VM etcd prima dell'errore di bootstrap, non puoi usare la VM per il debug.
Risoluzione
Controlla i log nei pod etcdadm
Nota: nei seguenti comandi, sostituisci SUFFIX con il suffisso del tuo provider di bootstrap. Sostituisci KUBECONFIG_FILE con la posizione del tuo file kubeconfig.
Dopo aver creato il cluster, puoi utilizzarlo con il file KUBECONFIG generato nella tua directory locale:
KUBECONFIG=${PWD}/${CLUSTER_NAME}/${CLUSTER_NAME}-eks-a-cluster.kubeconfig
Per controllare i log di etcdadm-bootstrap-provider-controller, esegui il seguente comando:
kubectl -n etcdadm-bootstrap-provider-system logs etcdadm-bootstrap-provider-controller-SUFFIX --kubeconfig=KUBECONFIG_FILE
Per controllare i log di etcdadm-controller-controller-manager, esegui il seguente comando:
kubectl -n etcdadm-controller-system logs etcdadm-controller-controller-manager-SUFFIX --kubeconfig=KUBECONFIG_FILE
Controlla i log per un etcd in stack
Se hai creato dei pod per un cluster etcd in stack, esegui il seguente comando per controllare i log di quei pod:
kubectl logs -n kube-system etcd-$CONTROL_PLANE_VM_IP --kubeconfig=KUBECONFIG_FILE
Nota: sostituisci KUBECONFIG_FILE con la posizione del tuo file kubeconfig.
Controlla i log delle VM
Dopo aver usato il client kubectl per controllare i log, puoi anche controllare i log sulle VM:
1. Accedi al piano di controllo (control-plane) della VM:
ssh -i $PRIV_KEY ec2-user@$CONTROL_PLANE_VM_IP
Nota: sostituisci PRIV_KEY con la tua chiave privata. Sostituisci CONTROL_PLANE_VM_IP con l'indirizzo IP della VM del tuo piano di controllo.
2. Per un sistema operativo (OS) Bottlerocket: Per ottenere la shell (interprete di comandi) principale per un nodo che funziona sul sistema operativo Bottlerocket, esegui il comando sudo sheltie.
3. Dopo aver effettuato l'accesso a una VM etcd, puoi controllare i log aggiuntivi dei container correlati nella seguente posizione:
cd /var/log/containers
Controlla i log per un etcd esterno o non in stack
Per un etcd esterno o non in stack, accedi a qualsiasi VM etcd che hai creato.
1. Per accedere alla tua VM etcd, esegui il seguente comando:
ssh -i $PRIV_KEY ec2-user@$ETCD_VM_IP
Nota: sostituisci PRIV_KEY con la tua chiave privata. Sostituisci ETCD_VM_IP con l'indirizzo IP della tua VM.
2. Per un sistema operativo (OS) Bottlerocket: Per ottenere la shell (interprete di comandi) principale per un nodo che funziona sul sistema operativo Bottlerocket, esegui il comando sudo sheltie.
3. Dopo aver effettuato l'accesso a una VM etcd, puoi controllare i log aggiuntivi dei container correlati nella seguente posizione:
cd /var/log/containers bash-5.1# ls -lrt total 4 lrwxrwxrwx. 1 root root 90 Apr 11 16:38 etcd-mgmt-etcd-4mt4g_kube-system_etcd-aa91be45434b920903e0630254cb5f319b86b50c56b87d8f992b0285272b93c4.log -> /var/log/pods/kube-system_etcd-mgmt-etcd-4mt4g_88b6dbc1be367b4ffc5a6bfab65e7376/etcd/0.log
Esegui un controllo dell'integrità
ETCD_CONTAINER_ID=$(ctr -n k8s.io c ls | grep -w "etcd-io" | cut -d " " -f1) ctr -n k8s.io t exec -t --exec-id etcd ${ETCD_CONTAINER_ID} etcdctl \ --cacert=/var/lib/etcd/pki/ca.crt \ --cert=/var/lib/etcd/pki/server.crt \ --key=/var/lib/etcd/pki/server.key \ endpoint health 127.0.0.1:2379 is healthy: successfully committed proposal: took = 10.241212ms
Messaggi di errore di esempio
Quando controlli i log, potresti visualizzare vari messaggi di errore relativi all'errore di bootstrap. I seguenti esempi sono alcuni degli errori più comuni:
"In attesa che l'ETCD esterno sia pronto".
Per risolvere questo errore, consulta la documentazione per la risoluzione dei problemi di Amazon EKS Anywhere.
"Kubelet delle VM ETCD si blocca".
Il provisioning del cluster si blocca dopo la creazione della tua VM ETCD. Questo problema si verifica anche con il seguente messaggio di errore kubelet:
"Impossibile avviare ContainerManager" err="configurazione allocabile del nodo non valida. La risorsa \"ephemeral-storage\" ha un allocabile di {{1175812097 0} {<nil>} BinarySI}, capacità di {{-155109377 0} {<nil>} BinarySI}"
Ciò indica che lo spazio di archiviazione effimero sul nodo non dispone di spazio libero sufficiente. In ogni nodo Kubernetes, la directory principale di kubelet (/var/lib/kubelet per impostazione predefinita) e la directory di log (/var/log) si trovano nella partizione root del nodo.
Per visualizzare lo spazio libero su disco di un file system specifico, esegui il seguente comando:
"df -h"
Per visualizzare un elenco di tutti i file e le rispettive dimensioni, esegui il seguente comando:
"sudo du -d 3 /var/lib/"
Se non hai abbastanza spazio libero su disco, pulisci il nodo per liberare spazio. Oppure, espandi la capacità di archiviazione della partizione root del tuo nodo.
Informazioni correlate
Installare etcd (sito Web etcd)
Come controllare lo stato del cluster (sito Web etcd)
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 7 mesi fa