60 domande e risposte su Kubernetes
Pensi di conoscere Kubernetes? Mettiti alla prova con queste 60 domande e risposte su Kubernetes
Kubernetes , spesso abbreviato in K8s, è una potente piattaforma open source per automatizzare la distribuzione, il ridimensionamento e la gestione di applicazioni containerizzate. Sviluppato originariamente da Google, è ora gestito dalla Cloud Native Computing Foundation (CNCF).
In sostanza, Kubernetes aiuta le organizzazioni a eseguire applicazioni in modo affidabile su cluster di macchine, astraendo le complessità dell’infrastruttura. Abilita funzionalità come il ridimensionamento automatico, l’auto-riparazione, il bilanciamento del carico e rollout/rollback senza soluzione di continuità. Con il suo ricco ecosistema di strumenti e integrazioni, Kubernetes è diventato la spina dorsale delle moderne architetture DevOps e cloud-native.
Che tu stia gestendo un’applicazione basata su microservizi o ridimensionando un’app monolitica, Kubernetes offre la flessibilità e il controllo necessari per operare in ambienti dinamici di livello di produzione.
Ecco un elenco di 60 domande e risposte su Kubernetes con risposte corrispondenti. Riguardano architettura, concetti, risoluzione dei problemi, sicurezza e altro:
60 domande e risposte su Kubernetes: Architettura e concetti fondamentali di Kubernetes
- Cos’è un control plane Kubernetes? Il controlo plane gestisce il cluster Kubernetes, mantenendo lo stato desiderato tramite componenti come kube-apiserver, etcd, kube-scheduler, kube-controller-manager, e cloud-controller-manager.
- Che cos’è etcd e perché è importante? etcd è un archivio chiave-valore distribuito che Kubernetes utilizza per archiviare tutti i dati del cluster, come configurazioni, segreti e stati.
- Spiega come funziona uno scheduler Kubernetes. Lo scheduler assegna i Pod ai nodi valutando i requisiti delle risorse, le policy e i vincoli, garantendo un posizionamento ottimale.
- Cos’è un Pod? Perché è la più piccola unità distribuibile in Kubernetes? Un Pod è un gruppo di uno o più contenitori che condividono lo stesso namespace di rete e lo stesso storage. Incapsula l’applicazione e le sue dipendenze, rendendolo l’unità di base della distribuzione.
- Come si garantisce un’elevata disponibilità in un cluster Kubernetes? Impostando un’architettura multi-master, bilanciatori di carico per il server API e utilizzando strumenti come kubeadm, Kops o servizi Kubernetes gestiti.
Networking avanzato - Che cos’è un servizio Kubernetes? Un servizio astrae un set di Pod, fornendo una rete stabile e un bilanciamento del carico. I tipi includono ClusterIP, NodePort, LoadBalancer ed ExternalName.
- Come funziona kube-proxy? kube-proxygestisce le regole di rete per consentire la comunicazione tra Pod e Servizi utilizzando tabelle IP, IPVS o proxy dello spazio utente.
- Qual è il ruolo di CNI in Kubernetes? Container Network Interface (CNI) è uno standard per la configurazione della rete dei container, che abilita plugin come Flannel, Calico e Weave.
- Cosa sono le network policies? Le policy di rete controllano il traffico tra i Pod o tra i Pod e gli endpoint esterni, utilizzando regole per consentire o negare l’ingresso e l’uscita.
- Come esporre un’applicazione in Kubernetes al traffico esterno? Utilizzare un servizio di tipo LoadBalancer o NodePort oppure una risorsa Ingress con un controller Ingress.
Storage - Cosa sono il Persistent Volume (PV) e il Persistent Volume Claim (PVC)? PV è una risorsa di storage nel cluster, mentre PVC è una richiesta di storage da parte di un utente. I PVC si legano ai PV per il provisioning dinamico o statico.
- Come funziona il provisioning dinamico dei volumi? Le StorageClass definiscono i tipi di archiviazione e, quando viene creato un PVC, Kubernetes fornisce dinamicamente un PV corrispondente.
- Cos’è CSI in Kubernetes? Container Storage Interface (CSI) standardizza la gestione dei plugin di archiviazione per il provisioning dinamico e il collegamento di volumi.
- Cosa è ephemeral storage? E’ l’Archiviazione temporanea legata al ciclo di vita del Pod, utilizzata per la memorizzazione nella cache, i registri o i file temporanei.
- Come è possibile eseguire il backup e il ripristino di etcd?Utilizzare etcdctli comandi per acquisire snapshot e ripristinare i dati su un altro cluster etcd.
Sicurezza - Cos’è RBAC e come funziona? Il controllo degli accessi basato sui ruoli (RBAC) gestisce l’accesso alle risorse Kubernetes utilizzando ruoli e associazioni.
- Cosa sono i Kubernetes Secrets e come vengono utilizzati? I segreti archiviano in modo sicuro dati sensibili come le credenziali, a cui i Pod fanno riferimento tramite volumi o variabili ambientali.
- Che cosa è il Pod Security Admission (PSA)? PSA applica gli standard di sicurezza per i Pod controllando i livelli di privilegio, ad esempio di base o limitati.
- Come si protegge il server API? Utilizzando TLS, abilitando RBAC, limitando l’accesso anonimo e abilitando i registri di controllo.
- Cosa sono i contesti di sicurezza dei Pod? I contesti di sicurezza definiscono le autorizzazioni a livello di Pod, come l’esecuzione come utente non root o il montaggio dei file system in sola lettura.
Risoluzione dei problemi - Come risolvere i problemi di Pod CrashLoopBackOff? Controllare i registri utilizzando kubectl logs, ispezionare gli eventi utilizzando kubectl describe pode convalidare le configurazioni dei contenitori.
- Come si eseguono il debug dei problemi di rete in Kubernetes? Utilizzare strumenti come kubectl exec, criteri di rete, tracerouteo strumenti esterni come ciliume tcpdump.
- Qual è il significato delle condizioni del nodo? Le condizioni del nodo (ad esempio MemoryPressure, DiskPressure) indicano lo stato di integrità e delle risorse, guidando le decisioni dello scheduler.
- Come si gestiscono i guasti etcd? Ripristina da un backup e garantisci il quorum aggiungendo nodi funzionanti.
- Quali strumenti puoi utilizzare per l’osservabilità di Kubernetes? Prometheus, Grafana, Fluentd, ELK stack e Jaeger.
Scalabilità e prestazioni - Come funziona il ridimensionamento automatico di Kubernetes? Kubernetes supporta il ridimensionamento automatico orizzontale (HPA), verticale (VPA) e del cluster in base all’utilizzo delle risorse o a metriche personalizzate.
- Che cos’è un ReplicaSet e in che cosa differisce da un Deployment? Un ReplicaSet garantisce un numero specificato di repliche di Pod, mentre le distribuzioni gestiscono i ReplicaSet per gli aggiornamenti e i rollback.
- Come si ottimizza l’utilizzo delle risorse in un cluster? Definisci le richieste/limiti delle risorse, monitora l’utilizzo con strumenti come Prometheus e dimensiona correttamente i carichi di lavoro.
- Cosa sono l’affinità e l’anti-affinità dei pod? L’affinità definisce le preferenze di co-localizzazione dei Pod, mentre l’anti-affinità impone la separazione.
- Come si gestisce la contesa delle risorse in un cluster? Utilizzare priorità, prelazione e quote di risorse.
Risorse e operatori personalizzati - Cosa sono le definizioni di risorse personalizzate (CRD)? I CRD consentono agli utenti di definire e gestire oggetti Kubernetes personalizzati.
- Che cos’è un operatore Kubernetes? Un operatore automatizza le attività operative per le applicazioni utilizzando controller e CRD personalizzati.
- Come si estendono le funzionalità di Kubernetes? Utilizzare CRD, controllori di ammissione o plugin come CNI e CSI.
- Come si scrive un controller personalizzato? Utilizzare le librerie client di Kubernetes (ad esempio client-go) per conciliare gli stati desiderati e quelli effettivi delle risorse.
- Cosa sono i finalizers in Kubernetes? I finalizers ritardano l’eliminazione delle risorse fino al completamento di specifiche attività di pulizia.
Amministrazione del cluster - Come si aggiorna un cluster Kubernetes? Aggiornare prima i componenti del piano di controllo, poi i nodi worker, seguendo il ciclo di rilascio di Kubernetes.
- Cosa sono la contaminazione e la tolleranza in Kubernetes? Le contaminazioni impediscono ai Pod di pianificare su nodi specifici, a meno che non tollerino la contaminazione.
- Come si esegue la manutenzione dei nodi in Kubernetes? Svuotare il nodo ( kubectl drain) e isolarlo per impedirne la pianificazione.
- Cos’è kubelet e qual è il suo ruolo? Kubelet è un agente in esecuzione su ciascun nodo, responsabile della gestione dei Pod e della segnalazione al piano di controllo.
- In che modo Kubernetes gestisce gli aggiornamenti continui? Le distribuzioni aggiornano i Pod in modo incrementale, creando nuovi Pod e riducendo quelli vecchi.
Scenari avanzati - Qual è la differenza tra StatefulSet e Deployment? Gli StatefulSet gestiscono le applicazioni con stato con identità di rete stabili, mentre i Deployment sono per le applicazioni senza stato.
- Come si garantisce la coerenza negli StatefulSet? Utilizzare servizi headless e volumi persistenti.
- Cos’è un Helm chart e come viene utilizzato? Helm è un gestore di pacchetti per Kubernetes e i chart Helm definiscono le configurazioni e le risorse delle applicazioni.
- Quali sono le differenze tra DaemonSet e Deployment? I DaemonSet garantiscono l’esecuzione di un Pod su ciascun nodo, mentre le distribuzioni scalano i Pod tra i nodi.
- Come si implementano le distribuzioni canary? Utilizza più versioni di distribuzioni con suddivisione del traffico tramite Ingress o Service mesh.
Sicurezza e best practices - Che cos’è un Pod Disruption Budget (PDB)? PDB definisce il numero minimo di Pod disponibili o il numero massimo di Pod non disponibili durante le interruzioni.
- Che cos’è l’admission control Kubernetes? I controllori di ammissione convalidano e modificano le richieste API in base alle policy.
- Come si implementa la crittografia per i segreti? Abilita la crittografia a riposo utilizzando la configurazione della crittografia Kubernetes.
- Quali sono le best practice per la gestione di ConfigMap e Secrets? Utilizzare ConfigMaps/Secrets immutabili, gestire l’accesso con RBAC ed evitare di esporre dati sensibili nei log.
- Cosa sono le namespace quotas? Le quote limitano il consumo di risorse negli spazi dei nomi, garantendone un’equa distribuzione.
Varie - Che cos’è kubeadm e come viene utilizzato? Kubeadm avvia i cluster Kubernetes configurando il piano di controllo e i nodi.
- Qual è la differenza tra un job e un cronjob? Un job esegue un’attività fino al suo completamento, mentre un cronjob pianifica i job a intervalli regolari.
- Che cos’è kube-state-metrics? Espone gli stati delle risorse Kubernetes come metriche Prometheus per il monitoraggio.
- Come si usa Service Mesh in Kubernetes? I service mesh come Istio o Linkerd aggiungono funzionalità come il routing del traffico, l’osservabilità e la sicurezza ai microservizi.
- Che cos’è l’Horizontal Pod Autoscaler (HPA)? HPA ridimensiona i Pod in base all’utilizzo di CPU/memoria o a metriche personalizzate.
Tendenze emergenti - Come si integra Kubernetes con i framework serverless? Utilizza Knative o OpenFaaS per eseguire carichi di lavoro senza server su Kubernetes.
- Che cos’è la Kubernetes Federation? La federazione gestisce più cluster per una distribuzione globale e un’elevata disponibilità.
- Qual è il ruolo dei motori di policy come OPA/Gatekeeper? Open Policy Agent (OPA) applica policy come la sicurezza o la conformità in Kubernetes.
- Che cos’è KubeEdge? KubeEdge estende Kubernetes ai dispositivi edge per IoT e edge computing.
- Cos’è il multi-tenant in Kubernetes? Il multi-tenancy isola le risorse e i carichi di lavoro per diversi utenti o team all’interno di un cluster.
Ecco tutte le 60 domande e risposte su Kubernetes avanzate che ti aiuteranno a superare i colloqui DevOps.
(fonte)
Innovaformazione, scuola informatica specialistica promuove le tecnologie per il cloud, il DevOps e Kubernetes per l’utilizzo consapevole. Nell’offerta formativa rivolta alle aziende trovate:
Corso Microservices Docker Kuberntes
INFO: info@innovaformazione.net – tel. 3471012275 (Dario Carrassi)