Principali oggetti di Kubernetes

Componenti Kubernetes

Compkub

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

Mpod1

Comunicano tra loro tramite localhost

Mpod2

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

Scalpod

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

Effimeri

Servizi

Service

  • Endpoints di rete persistenti e affidabili per i pod
  • Include il servizio DNS
  • Un oggetto di K8s

Associare i Pod ai Servizi

Assoc

  • Ottenuto tramite un insieme di Labels
  • Associati quando i pod hanno lo stesso sottoinsieme dei serrvizi

ReplicaSet

Replica

  • 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

Deploy

  • Oggetto di prima classe
  • Specificato da Manifest
    • YAML
    • JSON
  • Inviato via REST allo API Server
  • Molte features
    • Rollouts
    • Rollbacks

Ingress

Ingress

  • Interfaccia esterna al cluster
    • IP esterno
  • Usato per HTTP
  • Contatta i servizi interni