Principali oggetti di Kubernetes
Componenti Kubernetes
Pod
- Unità atomica di Deployment
- Sandbox con namespace, cgroups, ecc.
- Tutte le applicazioni sono dentro contenitori
- Ogni contenitore esegue in un pod
Due modelli:
- single-container pod - Un pod con un singolo contenitore
- multi-container pod - Un pod con più contenitori
- Vi è un contenitore principale
- Vi sono altri helper containers o supporting containers
- P.es. logger
I Pod:
- aumentano le capacità dei container
- etichette, annotazioni, policies di restart, scheduling, regole di affinità, controllo di terminazione, sicurezza, limiti alle risorse
- assistono nella schedulazione
- nella stessa regione e zona nel cloud o datacenter: co-scheduling e co-locating
- permettono la condivisione di risorse
- filesystems, stack di rete, memoria, volumi dati
Multicontainer Pods
Tutti i container in un pod condividono lo stesso ambiente, incluso l’indirizzo IP
Comunicano tra loro tramite localhost
Patterns
Funzioni del supporting container:
- Sidecar
- Task secondario: update, logging, ...
- Adapter
- Trattamento dei dati in input e/o output
- Ambassador
- Gestione di connettività a sistemi esterni
- Init
- Azioni da eseguire prima del container principale
Scalare i Pod
Aggiungere nuovi pod, non containers in un pod
I Pod sono effimeri
- Se un pod muore per qualsiasi motivo, un altro viene creato nel cluster
- Non avrà lo stesso indirizzo IP del precedente
- Un container non può contare sull’esistenza continuativa degli indirizzi IP degli altri
Servizi
- Endpoints di rete persistenti e affidabili per i pod
- Include il servizio DNS
- Un oggetto di K8s
Associare i Pod ai Servizi
- Ottenuto tramite un insieme di Labels
- Associati quando i pod hanno lo stesso sottoinsieme dei serrvizi
ReplicaSet
- Tipicamente contenuto in un Deployment
- Oggetto K8s, wrapper di pod
- Compie la gestione di un numero di pod
- Si assicura della presenza continua del numero di istanze desiderato
Deployment
- Oggetto di prima classe
- Specificato da Manifest
- YAML
- JSON
- Inviato via REST allo API Server
- Molte features
- Rollouts
- Rollbacks
Ingress
- Interfaccia esterna al cluster
- IP esterno
- Usato per HTTP
- Contatta i servizi interni