Cheat sheet di Kubernetes: architettura, componenti, foglio di comando
Pubblicato: 2020-12-15Kubernetes è diventata una parte essenziale delle industrie e sta cambiando il mondo della tecnologia. Janet Kuo, co-presidente del KubeCon, ha affrontato le caratteristiche di Kubernetes e la sua importanza nel prossimo futuro. Parla delle estensioni e delle soluzioni Kubernetes che cambieranno il mondo .
Questo cheat sheet fornirà un riferimento ai professionisti che lavorano nell'implementazione di Kubernetes. Contiene tutti i dettagli necessari per aiutare i principianti che non conoscono Kubernetes. Il Cheat Sheet di Kubernetes è un mezzo rapido e pratico per fare riferimento a tutti i concetti e i comandi essenziali di Kubernetes.
Sommario
A proposito di Kubernetes
Una piattaforma open source per la distribuzione automatica e la scalabilità dei container tra i cluster di host per fornire un'infrastruttura incentrata sui container è nota come Kubernetes (noto anche come "Kube" o k8s). Consente una gestione semplice ed efficiente di diversi host che eseguono container Linux raggruppandoli in cluster.
Kubernetes è una piattaforma progettata per gestire completamente il ciclo di vita di applicazioni e servizi containerizzati. Un utente Kubernetes può definire i modi in cui un'applicazione deve essere eseguita e interagire con diverse applicazioni.
Gli utenti possono passare il traffico tra diverse versioni di applicazioni, eseguire aggiornamenti, aumentare e ridurre i servizi, ecc. con Kubernetes. Offre agli utenti un elevato grado di flessibilità, affidabilità e potenza nella gestione delle applicazioni.
Alcune delle caratteristiche principali di Kubernetes sono:

- Massimizza le risorse facendo un uso migliore dell'hardware.
- Un orchestratore di contenitori su più host.
- Automatizza il processo di distribuzione e gli aggiornamenti.
- In grado di eseguire un container Linux.
- La scalabilità automatica aiuta ad avviare i contenitori sui nodi del cluster.
- Ridimensionamento su e giù secondo necessità.
- Auto-guarigione sostituendo, riprogrammando e riavviando i contenitori morti.
- Rollback e rollout automatizzati.
- Bilanciamento del carico e rilevamento dei servizi.
- Riavvio automatico, posizionamento automatico e replica automatica, ecc.
Leggi: Algoritmo di apprendimento profondo
Architettura di Kubernetes
L'architettura di Kubernetes è composta da strati: strati superiori e inferiori. La complessità dell'astrazione dello strato superiore può essere trovata negli strati inferiori. Le singole macchine fisiche o virtuali vengono riunite in un cluster. Una rete condivisa viene utilizzata per la comunicazione tra ciascun server. Quindi, proprio come altre piattaforme distribuite, Kubernetes ha un master (almeno) e più nodi di calcolo.
- Il master di Kubernetes pianifica le distribuzioni, espone l'API e gestisce l'intero cluster Kubernetes.
- Il nodo esegue un runtime del contenitore, un agente per la comunicazione con il master e altri componenti di monitoraggio, registrazione e così via.
Componenti dell'architettura Kubernetes
Diamo un'occhiata allo scopo e ai componenti di master e nodi nell'architettura Kubernetes.
Maestro
Il master mantiene lo stato desiderato del cluster. Poiché gestisce l'intero cluster, viene chiamato master. Contiene:
- Server API: server API Kubernetes
- Utilità di pianificazione: utilizzata per la pianificazione del pod nei nodi di lavoro
- Controller: gestisce la replica del pod
- Etcd: un servizio di metadati
Nodi
Contiene i servizi necessari che sono importanti per l'esecuzione dei pod. Il master gestisce i nodi. Si chiama anche Minion. Contiene:
- Pod: Gruppo di contenitori
- Docker: tecnologia basata su container, spazio utente del sistema operativo.
- Kubelet: agenti container responsabili della manutenzione del set di pod.
- Kube-proxy: instrada il traffico in arrivo in un nodo dal servizio
Ora, comprendiamo i comandi importanti di Kubernetes.
Comandi Kubectl
Kubectl è lo strumento da riga di comando per Kubernetes. I comandi di base di Kubectl possono essere suddivisi in:
- Introspezione su pod e container
- Introspezione a grappolo
- Debug
- Comandi rapidi
- Oggetti
Introspezione su baccelli e container
| Funzionalità | Comando |
| Per descrivere i nomi dei pod | Kubectl descrive il pod<nome> |
| Per elencare tutti i pod attuali | Kubectl ottiene i baccelli |
| Per elencare tutti i controller di replica | Kubectl ottiene rc |
| Per mostrare il nome del controller di replica | Kubectl descrive rc <nome> |
| Per elencare i controller di replica in uno spazio dei nomi | Kubectl get rc –namespace="spazio dei nomi" |
| Per mostrare un nome di servizio | Kubectl descrive svc<nome> |
| Per i servizi di quotazione | Kubectl ottiene cvc |
| Per guardare i nodi continuamente. | Kubectl ottiene nodi -w |
| Per eliminare un pod | Kubectl elimina pod<nome> |
Introspezione a grappolo
| Funzionalità | Comando |
| Per ottenere informazioni relative alla versione | Versione Kubectl |
| Per ottenere i dettagli di configurazione | Kubectl config g vista |
| Per ottenere informazioni relative al cluster | Informazioni sul cluster Kubectl |
| Per ottenere informazioni su un nodo | Kubectl descrive il nodo<nodo> |
Comandi di debug

| Funzionalità | Comando |
| Per visualizzare le metriche per un pod | Pod superiore Kubectl |
| Per visualizzare le metriche per un nodo | Nodo superiore di Kubectl |
| Per guardare i log di Kubelet | Guarda -n 2 cat/var/log/kublet.log |
| Per ottenere i log dal servizio per il container | Registri Kubectl -f<nome>>[-c< $contenitore>] |
| Per l'esecuzione del comando in servizio selezionando un container | Kubectl exec<servizio><comandi>[-c< $container>] |
Comandi rapidi
I comandi rapidi seguenti sono spesso usati e quindi molto utili.

| Funzionalità | Comando |
| Per avviare un pod con un nome e un'immagine. | Kubectl run<nome> — image=<nome-immagine> |
| Per la creazione di un servizio descritto in <manifest.yaml> | Kubectl create -f <manifest.yaml> |
| Per ridimensionare il contatore di replica per contare il numero di istanze. | Scala Kubectl –replicas=<count>rc<nome> |
| Per mappare la porta esterna alla porta di replica interna. | Esponi rc<nome> –port=<esterno>–target-port=<interno> |
| Per fermare tutti i pod in <n> | Kubectl drain<n>– delete-local-data–force–ignore-daemonset |
| Per creare uno spazio dei nomi. | Kubectl crea lo spazio dei nomi <spazio dei nomi> |
| Per consentire al nodo master di eseguire i pod. | Kubectltaintnodes –all-node-role.kuernetes.io/master- |
Oggetti
Alcuni degli oggetti familiari utilizzati in Kubernetes sono i seguenti:
| Elenco di oggetti comuni | |
| Tutti | Revisioni del controller |
| cm= conf gmaps | Associazioni del ruolo del cluster |
| Cronjobs | cs=stati dei componenti |
| Distribuzione=distribuzioni | limiti = intervalli limite |
| ev= eventi | hpa= ridimensionamento automatico del pod orizzontale |
| lavori | ds= set di demoni |
| No = nodi | ns= spazi dei nomi |
| po= baccelli | Preimpostazione del baccello |
| Psp= criteri di sicurezza del pod | Pv= volumi persistenti |
| quota= quote di risorse | rs= set di repliche |
| ruoli | rc= controller di replica |
| sc= classi di archiviazione | pdb= budget di distribuzione dei pod |
| cluster | segreti |
| crd=definizione risorsa personalizzata | Modelli di baccello |
| csr= richieste di firma del certificato | sa= account di servizio |
| Politiche di rete Netpol | Legami di ruolo |
| ing= ingresso | pvc= dichiarazioni di volume persistenti |
| ep=punti finali | sts= insiemi con stato |
Leggi anche: Regolarizzazione nel Deep Learning
Cheat sheet del comando Kubernetes
Tutte le informazioni di base su Kubernetes, la sua architettura e i comandi sono mostrate nel seguente cheat sheet di Kubernetes:

Se sei interessato a saperne di più sulle tecniche di deep learning e machine learning, dai un'occhiata al Diploma PG di IIIT-B e upGrad in Machine Learning e AI, progettato per i professionisti che lavorano e offre oltre 450 ore di formazione rigorosa, oltre 30 casi di studio e incarichi, stato di Alumni IIIT-B, oltre 5 progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
Cos'è Kubernetes?
Kubernetes è una piattaforma open source per automatizzare la distribuzione, il ridimensionamento e la gestione dei container. Un container è un pacchetto software pronto per l'esecuzione che contiene tutto il necessario per eseguire l'applicazione: codice, ambiente di runtime, applicazione e librerie di sistema. I container sono come unità logiche di applicazione e quando Kubernetes li raggruppa, diventa facile gestire e scoprire i container. Questi contenitori vengono distribuiti e ridimensionati tra gli host per fornire un'infrastruttura incentrata sui contenitori. In breve, è una piattaforma che gestisce l'intero ciclo di vita delle applicazioni containerizzate.
Quali sono i componenti principali dell'architettura Kubernetes?
Ci sono due componenti principali nell'architettura Kubernetes: il nodo principale e il nodo di lavoro. Un nodo è la macchina di lavoro principale che è importante per eseguire un gruppo di cluster chiamati pod. L'intero cluster è gestito dal nodo master, mentre il nodo di lavoro esegue le attività assegnate dal nodo master. Questi nodi hanno molti componenti integrati al loro interno. Il nodo master contiene Kubernetes API Server, Kubernetes Scheduler, Kubernetes Controller ed ecc. Il nodo di lavoro ha pod, docker, kubelet e kube-proxy.
Cosa fanno kubelet e kube-proxy?
Kubelet, che è presente in ogni nodo, assicura che i container funzionino bene in un pod. Lo fa prendendo un set di PodSpec fornito principalmente tramite apiserver e controllando i contenitori presenti in tali PodSpec. Un PodSpec è un oggetto YAML o JSON che descrive un pod. Kubernetes Network Proxy, noto anche come kube-proxy, mantiene le regole di rete sui nodi. La comunicazione dalle sessioni di rete all'interno o all'esterno del cluster ai pod è possibile tramite queste regole di rete. Kube-proxy inoltra il traffico se il livello di filtraggio dei pacchetti del sistema operativo non è disponibile.
