Sommario[Nascondere][Spettacolo]
- 1. Cos'è Kubernetes?
- 2. Cosa intendi per container in Kubernetes?
- 3. Quali sono i componenti principali di Kubernetes?
- 4. Cosa intendi per orchestrazione in Kubernetes?
- 5. Cos'è esattamente un cluster Kubernetes?
- 6. In che modo Kubernetes semplifica l'implementazione containerizzata?
- 7. Quali distinzioni fondamentali esistono tra Kubernetes e Docker Swarm?
- 8. Cos'è uno spazio dei nomi in Kubernetes?
- 9. Cos'è esattamente il componente master Kubernetes etcd?
- 10. Quali soluzioni esistono per la sicurezza delle API su Kubernetes?
- 11. Quali sono le differenze tra le applicazioni distribuite su host e container?
- 12. Cosa intendi realmente per Minikube?
- 13. Come si può monitorare il cluster Kubernetes?
- 14. Quale funzione svolgono i nodi Kubernetes?
- 15. Descrivi dettagliatamente l'hipster.
- 16. Descrivi il funzionamento del nodo master Kubernetes.
- 17. Cosa differenzia il contenitore dalla cialda?
- 18. Cosa intendi per bilanciamento del carico in Kubernetes?
- 19. Quale funzione svolge il server Kube-API?
- 20. Cosa significano gli stateful set di Kubernetes?
- 21. Come si esaminano i log centrali del pod?
- 22. ClusterIP: che cos'è?
- 23. Parlami dei controller di replica?
- 24. Come funziona la rete Ingress e cos'è?
- 25. Prometeo in Kubernetes: a cosa serve?
- 26. Cos'è il servizio headless?
- 27. Di cosa ho bisogno per eseguire l'architettura Kubernetes in locale?
- 28. Cosa intendi per set Stateful?
- 29. In Kubernetes, cosa significano i minion?
- 30. Quali funzioni svolgono i servizi all'interno dei componenti Kubernetes?
- 31. Cos'è esattamente Helm?
- 32. Spiega il PVC
- Conclusione
Google ha originariamente creato Kubernetes, una tecnologia di orchestrazione di container open source, nel 2014. L'implementazione, il ridimensionamento e l'amministrazione delle applicazioni containerizzate dovevano essere automatizzate.
Kubernetes si è sviluppato nel tempo fino a diventare lo standard de facto del settore per l'orchestrazione dei container ed è ampiamente utilizzato da aziende di tutte le dimensioni per gestire i propri carichi di lavoro nei container.
L'importanza di Kubernetes nel mondo moderno risiede nella sua capacità di offrire un metodo coerente di gestione delle applicazioni containerizzate su larga scala, coprendo vari cluster e ambienti cloud. Per questo motivo, le aziende possono gestire, espandersi e distribuire le loro applicazioni rapidamente ed efficacemente.
La manutenzione delle app containerizzate è ulteriormente semplificata dall'ampio set di funzionalità di Kubernetes, che include auto-riparazione, scalabilità automatica e aggiornamenti in sequenza.
Man mano che sempre più aziende utilizzano la containerizzazione e i microservizi per accelerare lo sviluppo delle applicazioni e le procedure di distribuzione, si prevede che l'ambito di Kubernetes continuerà ad espandersi in futuro.
L'adozione di tecnologie native del cloud e il passaggio generale a sistemi multi-cloud e cloud ibridi dipenderanno fortemente da Kubernetes. Man mano che sempre più dispositivi sono collegati a Internet, anche Kubernetes verrà utilizzato sempre di più nel contesto di edge computing e IoT.
Presumo che tu sia già a conoscenza di questi dettagli perché stai leggendo questo post su Kubernetes Interview Questions, che ti informerà sulle domande di intervista più frequenti. Cominciamo.
1. Cos'è Kubernetes?
Kubernetes è un framework open source per l'orchestrazione e l'amministrazione di applicazioni containerizzate. Consente di implementare, ridimensionare e mantenere in modo coerente ed efficace le applicazioni containerizzate.
Kubernetes offre un unico metodo per la gestione delle applicazioni containerizzate su larga scala ed è progettato per funzionare su vari cluster e ambienti cloud.
Auto-riparazione, scalabilità automatica e aggiornamenti in sequenza sono solo alcune delle funzionalità che rendono ancora più semplice la gestione delle app containerizzate.
2. Cosa intendi per container in Kubernetes?
I container sono un approccio portatile, leggero e autosufficiente per il confezionamento e l'esecuzione del software. Il packaging e la distribuzione delle applicazioni vengono eseguiti in modo coerente ed efficace in Kubernetes utilizzando i container.
Per mantenersi separato dagli altri container e dalla macchina host, ogni container esegue solo un processo. Le dipendenze, le librerie ei file di configurazione di un'applicazione sono tutti inclusi nell'immagine del contenitore che funge da definizione di un contenitore.
Il numero previsto di repliche di un container è sempre operativo grazie all'uso dell'orchestrazione dei container da parte di Kubernetes per gestire e ridimensionare i container. Questo rende semplice per gli sviluppatori gestire e distribuire le proprie applicazioni su diversi cluster e ambienti cloud.
3. Quali sono i componenti principali di Kubernetes?
Ecco i componenti principali dei kubeneters:
- Il master Kubernetes: questo componente, che comprende anche il gestore controller e lo scheduler, etcd (un archivio chiave-valore distribuito), il server API e altri componenti, è responsabile della gestione del cluster nel suo insieme.
- Nodi: sono le workstation su cui vengono eseguiti i programmi containerizzati. Il kubelet, che interagisce con il master per mantenere lo stato previsto del cluster, viene eseguito su ciascun nodo insieme a un runtime del contenitore (come Docker).
- Pod: l'elemento più piccolo e basilare del modello a oggetti Kubernetes è il pod, che funge da host per uno o più container.
- Servizi: i servizi offrono un endpoint coerente per i pod e consentono il bilanciamento del carico e l'individuazione dei servizi.
- Controller di replica: garantiscono che il numero richiesto di repliche di pod sia sempre operativo.
- Segreti e ConfigMap: queste risorse vengono utilizzate per mantenere i dati di configurazione e i segreti per i pod e altri oggetti del cluster.
4. Cosa intendi per orchestrazione in Kubernetes?
In Kubernetes, il termine "orchestrazione" si riferisce all'amministrazione automatizzata e al coordinamento dei container e delle risorse a cui sono connessi. Implica attività che includono networking, scalabilità, distribuzione e riparazione automatica. Utilizzando oggetti come pod, servizi e controller di replica, Kubernetes orchestra le applicazioni.
I pod, che possono contenere uno o più container, sono le unità dispiegabili più piccole. I servizi gestiscono bilancio del carico e service discovery e dare ai pod un solido endpoint. Una replica di un pod funziona sempre con il numero di copie richiesto grazie ai controller di replica.
5. Cos'è esattamente un cluster Kubernetes?
Un insieme di nodi che eseguono app containerizzate in diversi contesti e macchine (basate su cloud, fisiche, virtuali e locali) costituisce un cluster Kubernetes. Facilita la semplice gestione e migrazione delle app, nonché la loro creazione.
6. In che modo Kubernetes semplifica l'implementazione containerizzata?
Poiché un'applicazione tipica funzionerebbe in un cluster di contenitori su molti host, tutti questi contenitori dovrebbero comunicare tra loro.
Quindi, per ottenere questo risultato, è necessario un sistema su larga scala in grado di scalare, bilanciare il carico e monitorare i contenitori. Devi utilizzare Kubernetes per facilitare la distribuzione containerizzata poiché è indipendente dal cloud e può operare su qualsiasi provider pubblico o privato.
7. Quali distinzioni fondamentali esistono tra Kubernetes e Docker Swarm?
Pianifica e raggruppa i container Docker con Docker Swarm, uno strumento di orchestrazione dei container open source nativo di Docker. Le seguenti caratteristiche distinguono Swarm da Kubernetes:
- Mentre Kubernetes e Docker Swarm mancano entrambi di funzionalità di ridimensionamento automatico, il ridimensionamento di Docker è cinque volte più veloce di Kubernetes.
- Kubernetes fornisce una GUI sotto forma di dashboard, ma a Docker Swarm ne manca una.
- Rispetto a Kubernetes, che è più difficile da configurare ma offre la garanzia di un cluster forte, Docker Swarm è più facile da installare ma non ha un cluster stabile.
- Sebbene Kubernetes includa funzionalità integrate per la registrazione e il monitoraggio, Docker necessita di strumenti esterni come lo stack ELK.
- Gli aggiornamenti in sequenza possono essere distribuiti tramite Docker, ma non i rollback automatici; Gli aggiornamenti in sequenza e i rollback automatici possono essere distribuiti utilizzando Kubernetes.
8. Cos'è uno spazio dei nomi in Kubernetes?
Lo spazio dei nomi Kubernetes viene utilizzato in un ambiente in cui diversi utenti lavorano su numerosi progetti in un'ampia area geografica. Lo spazio dei nomi suddivide le risorse del cluster tra diversi utenti.
9. Cos'è esattamente il componente master Kubernetes etcd?
Etcd è una parte cruciale del server master Kubernetes. Inoltre, funge da hub del cluster Kubernetes, in cui gli elementi vengono archiviati in un archivio di valori-chiave distribuito.
La tecnologia di replica viene utilizzata in combinazione con un algoritmo per preservare i dati salvati in etcd tra i server. Quando si confrontano e si scambiano dati tra i server etcd, la valuta ottimistica viene utilizzata per ridurre al minimo le situazioni di blocco e aumentare la velocità del server.
10. Quali soluzioni esistono per la sicurezza delle API su Kubernetes?
La fornitura della sicurezza API può essere effettuata nel modo elencato di seguito:
- Tramite mezzi di autenticazione API
- Selezione della modalità di autenticazione appropriata per la modalità di autenticazione del server API= Nodo, RBAC
- Monitoraggio degli errori RBAC
- Garantire che TLS venga utilizzato per salvaguardare il traffico
- Usando la modalità di autorizzazione=Webhook per garantire che Kubeless protegga la sua API
- Eliminazione delle autorizzazioni predefinite dell'account di servizio
- Utilizzando la versione più recente di kube
- Assicurarsi che la kube-dashboard segua una rigorosa politica RBAC
- Implementazione di una politica di sicurezza del pod per limitare l'accesso al contenitore e salvaguardare il nodo
11. Quali sono le differenze tra le applicazioni distribuite su host e container?
Un sistema operativo e un'architettura costituiscono le applicazioni distribuite. Il sistema operativo avrà un kernel che ospita le molteplici librerie necessarie a un'applicazione.
Una macchina che esegue contenitori di processo viene definita host contenitore. Poiché questo tipo di software è distinto da altri programmi, le app devono includere le librerie necessarie. I binari non possono violare i diritti di qualsiasi altro software poiché sono separati dal resto del sistema.
12. Cosa intendi realmente per Minikube?
Con Minikube, Kubernetes può essere facilmente eseguito localmente. Ciò consente a una macchina virtuale di ospitare un cluster Kubernetes con un singolo nodo.
13. Come si può monitorare il cluster Kubernetes?
Il funzionamento e lo stato dei container che operano in Kubernetes possono essere monitorati utilizzando una varietà di metodi. Prometeo, uno degli strumenti più usati, contiene un certo numero di parti, che sono suddivise nelle sezioni seguenti.
- Il server Prometheus raccoglie e archivia i dati delle serie temporali.
- Include librerie client che facilitano la strumentazione del codice dell'applicazione.
- È dotato di un gateway push in grado di supportare lavori temporanei.
- Esistono esportatori con funzioni specializzate per una varietà di servizi container, come StatsD, HAProxy, Graphite, ecc.
- Inoltre, riceverai un gestore degli avvisi per gestire le notifiche su vari sistemi di supporto.
14. Quale funzione svolgono i nodi Kubernetes?
Per il funzionamento dei pod, Node offre funzioni cruciali. I nodi, noti anche come minion, possono funzionare su qualsiasi computer reale o virtuale a seconda del cluster.
In Kubernetes, il nodo è il computer di lavoro principale, mentre i componenti principali supervisionano ogni nodo individualmente.
15. Descrivi dettagliatamente l'hipster.
Heapster combina i dati nell'intero cluster che Kubelet, che viene eseguito su ogni nodo, genera. Questo strumento di gestione dei container è supportato nativamente da questo cluster Kubernetes e funziona come un pod proprio come qualsiasi altro pod nel cluster.
Fondamentalmente, ciò comporta l'individuazione di ogni nodo nel cluster e l'utilizzo di un agente Kubernetes sulla macchina per interrogare i dati dai nodi Kubernetes del cluster.
16. Descrivi il funzionamento del nodo master Kubernetes.
Il nodo master eleva i nodi dominanti e di controllo dei nodi di lavoro. È simile a un cluster Kubernetes. I nodi sono responsabili della gestione del cluster e dell'API utilizzata per configurare e gestire le risorse della raccolta. Grazie al vantaggio dei pod dedicati, i nodi master di Kubernetes possono essere eseguiti insieme a Kubernetes stesso.
17. Cosa differenzia il contenitore dalla cialda?
Come unità di replica, Kubernetes utilizza un pod, che è un gruppo di contenitori. I contenitori sono la raccolta di codici che un pod per un'applicazione dovrebbe creare. All'interno dello stesso pod, i contenitori possono comunicare tra loro.
18. Cosa intendi per bilanciamento del carico in Kubernetes?
Uno dei metodi più diffusi e accettati di esposizione del servizio è un bilanciamento del carico. A seconda dell'ambiente di lavoro, un bilanciatore del carico è un bilanciatore del carico interno o un bilanciatore del carico esterno.
Mentre l'External Load Balancer instrada il traffico dal carico esterno ai pod back-end, l'Internal Load Balancer bilancia automaticamente il carico e assegna ai pod la configurazione necessaria.
19. Quale funzione svolge il server Kube-API?
Per gli oggetti API, questo tipo verifica e offre informazioni di configurazione. È costituito da controller di replica, servizi e pod. Inoltre, offre operazioni REST e l'interfaccia del cluster. Tutti gli altri componenti comunicano tra loro tramite questo stato cluster frontend comune.
20. Cosa significano gli stateful set di Kubernetes?
Un oggetto API del carico di lavoro chiamato set con stato viene utilizzato per gestire le applicazioni con stato. Viene utilizzato per ridimensionare i set di pod e gestire le distribuzioni. Nell'archiviazione su disco che si collega al set stateful, le informazioni sullo stato e altri dati resilienti dei pod stateful sono stati salvati e mantenuti aggiornati.
21. Come si esaminano i log centrali del pod?
Per recuperare i log centrali dal pod, puoi utilizzare uno dei due stili di registrazione.
- Utilizzare un agente di registrazione a livello di nodo.
- Il sidecar container nel torrente
- Utilizzare l'agente di registrazione insieme al contenitore sidecar.
- Esporta direttamente i log dal programma
22. ClusterIP: che cos'è?
Il servizio Kubernetes predefinito, ClusterIP, offre un servizio cluster interno (senza accesso esterno) a cui possono accedere altre applicazioni nel tuo cluster.
23. Parlami dei controller di replica?
Per tutti i pod con esecuzione prolungata, i controller di replica fungono da supervisori. Garantisce che il numero richiesto di pod sia attivo in qualsiasi momento e che ogni pod o gruppo di pod abbia una struttura coerente.
Se sono presenti più pod rispetto al numero previsto, i pod in eccesso vengono terminati. Inoltre, il controller sostituirà immediatamente eventuali pod difettosi.
24. Come funziona la rete Ingress e cos'è?
Gli utenti possono accedere ai tuoi servizi Kubernetes dall'esterno del cluster Kubernetes grazie a un elemento chiamato ingresso. Stabilendo regole che specificano quali connessioni in entrata raggiungono determinati servizi, gli utenti possono configurare l'accesso.
Questo oggetto API offre le regole di instradamento necessarie per controllare la modalità di accesso ai servizi nel cluster Kubernetes da parte dei visitatori dall'esterno del cluster tramite HTTPS/HTTP. Con questo, gli utenti possono creare le regole di instradamento del traffico in modo rapido ed efficiente senza dover creare diversi bilanciatori del carico o esporre ogni servizio ai nodi.
25. Prometeo in Kubernetes: a cosa serve?
Un toolkit open source chiamato Prometheus viene utilizzato per monitorare e avvisare l'applicazione in base alle metriche. Offre uno schema di dati e un linguaggio di query ed è in grado di fornire informazioni e azioni sulle metriche. Consente l'uso del linguaggio per molti scopi strumentali.
Oltre ad Alertmanager e Grafana, l'operatore Prometheus offre un semplice monitoraggio per implementazioni e servizi K8s.
26. Cos'è il servizio headless?
Un servizio headless è un servizio che utilizza un indirizzo IP ma fornisce informazioni sui pod connessi anziché sul bilanciamento del carico.
27. Di cosa ho bisogno per eseguire l'architettura Kubernetes in locale?
Per l'integrazione di Kubernetes, diverse infrastrutture locali sono state sottoposte a rimodellamento. Sono necessarie competenze di alto livello per integrare storage, server e reti in un sistema senza soluzione di continuità.
La selezione dell'hardware di rete e archiviazione appropriato è essenziale per Kubernetes poiché consente l'interazione con le risorse per l'archiviazione, i bilanciamenti del carico, ecc. L'automazione dei componenti di rete e archiviazione è un componente chiave della proposta di valore di Kubernetes.
28. Cosa intendi per set Stateful?
L'elemento dell'API del carico di lavoro noto come set con stato viene utilizzato per gestire le applicazioni con stato. Può anche essere utilizzato per ridimensionare i set di pod e gestire le distribuzioni. L'archiviazione su disco, che è connessa al set con stato, ospita le informazioni sullo stato e altri dati per i pod con stato.
29. In Kubernetes, cosa significano i minion?
In Kubernetes, un nodo viene definito macchina worker; in precedenza, era conosciuto come servitore. Basato su un cluster, potrebbe essere un computer virtuale o una macchina reale.
Ogni nodo è governato dai componenti master di Kubernetes e contiene i servizi necessari per gestire i pod. Il container runtime, kubelet e Kube-proxy sono inclusi nei servizi offerti dal nodo.
30. Quali funzioni svolgono i servizi all'interno dei componenti Kubernetes?
Attraverso la fornitura dell'indirizzo IP virtuale, un servizio funge da astrazione per i pod. L'indirizzo IP virtuale facilita le connessioni degli utenti ai contenitori in esecuzione all'interno dei pod. È un componente che determina la disposizione dei contenitori all'interno dei pod.
31. Cos'è esattamente Helm?
Il registro di gestione dei pacchetti dell'applicazione Helm gestito da CNF è disponibile per Kubernetes. Il preconfigurato Grafici del timone può essere scaricato e distribuito nel tuo sistema Kubernetes. Una delle soluzioni di gestione dei pacchetti più popolari per l'ambiente Kubernetes è questa. I team DevOps possono distribuire le app negli ambienti di produzione e sviluppo, eseguirne la versione e monitorarne l'avanzamento utilizzando i grafici esistenti.
32. Spiega il PVC
PVC è l'acronimo di Persistent Volume Claim. È l'archiviazione che Kubernetes ha richiesto per i pod. Non è necessaria la conoscenza da parte dell'utente del provisioning sottostante. Lo spazio dei nomi in cui è formato il pod e in cui deve essere effettuata questa affermazione deve corrispondere.
Conclusione
Le domande e le risposte dell'intervista Kubernetes sono complete.
C'è indubbiamente molto altro da imparare su Kubernetes, la tecnologia all'avanguardia che ha reso possibile la gestione e l'esecuzione di migliaia di container, ma questo è un solido punto di partenza. Per assistenza nella preparazione del colloquio, cfr La serie di interviste di Hashdork.
Lascia un Commento