Vai al contenuto

Kubernetes: computing

In ogni region Kubernetes sono presenti i seguenti computers

Macchina Day 1 Day 2 Descrizione
kubernetes.cmp.gw Sistemisti Sistemisti Il firewall preimetrale del sito
kubernetes.cmp.jump Sistemisti Sistemisti Una VM Linux usata come ponte per l'accesso SSH ai nodi K8s e per operazioni amministrative.

Template e deployment della VM sono definiti in qntweb/sb.vsphere-images-builder
kubernetes.cmp.auth Sistemisti Sistemisti Una VM Linux che ospita una installazione di dex, per l'integrazione tra kubectl e Active Directory ai fini dell'autenticazione dello staff in Kubernetes.

Template e deployment della VM sono definiti in qntweb/sb.vsphere-images-builder
kubernetes.cmp.nodes CAPI CAPI VM Linux che fungono da nodi dei clusters.

Il template della VM è definito in qntweb/sb.vsphere-images-builder
kubernetes.cmp.bgp Sistemisti Sistemisti VM Linux che espongono i routers BGP per il traffico N/S verso i servizi esposti dall'ambiente tramite LoadBalancers.

Template e deployment delle VM sono definiti in qntweb/sb.vsphere-images-builder

kubernetes.cmp.jump

È una VM Linux usata per scopi amministrativi. Il suo nome è {sito}-k8s-jump.

Viene usata per eseguire il boostrap del Management Cluster di una region e come ponte per accedere via SSH a tutte le altre VM della region.

Generalmente la macchina è spenta. Viene accesa solo per svolgere operazioni amministrative.

kubernetes.cmp.auth

È una VM Linux usata per scopi amministrativi. Il suo nome è {sito}-k8s-auth.

Lo staff selezionato può raggiungere via VPN i control plane (1) di tutti i clusters dell'ambiente.

  1. I VIP delle API Kubernetes (kubernetes.cmp.k8s-api) via HTTPS/6443

Qui le chiamate tramite kubectl devono essere autenticate con un meccanismo integrato con la nostra gestione di utenti e gruppi in Active Directory, in modo da poter referenziare utenti e gruppi di dominio nelle regole RBAC di ogni cluster.

L'autenticazione presso Kubernetes funziona tramite OIDC tokens.

kubernetes.cmp.auth ospita un'installazione di dex per l'integrazione con Active Directory ed eroga l'interfaccia di login per il flusso di autenticazione di kubectl da parte dello staff.

kubernetes.cmp.nodes

I clusters kubernetes non attraversano gli ambienti di siti diversi.
I nodi di uno stesso cluster sono distribuiti nel medesimo sito.

Usiamo Cluster API, con integrazione vSphere, per automatizzare la distribuzione dei clusters, ossia il provisioning ed il setup dei nodi che li compongono.

In ogni ambiente è presente un Management Cluster, i cui controllers Cluster API sovraintendono alle operazioni Day1+2 relative alla distribuzione dei clusters.

Kubernetes HA control planes

Nell'integrazione Cluster API - vSphere consideriamo ogni host fisico come un failure-domain.

Il sistema di distribuzione dei clusters si assicura di conseguenza che il control plane (1) di ogni cluster sia distribuito in HA su host fisici differenti.

  1. È l'insieme dei nodi master del cluster

Nella progettazione dei nostri cluster utilizziamo i failure domains per fornire HA anche ai nostri applicativi.

kubernetes.cmp.bgp

I routers BGP dell'ambiente kubernetes sono funzionali al trasporto delle rotte attraverso cui viaggia il traffico (N/S) destinato ai servizi esposti dai clusters kubernetes tramite LoadBalancers.

I nodi Kubernetes, tramite Cilium, pubblicizzano tali rotte verso i routers BGP, che, a loro volta, le trasmettono al firewall perimetrale.

kubernetes.cmp.nodes -> kubernetes.cpm.bgp -> kubernetes.gw

Per ragioni di HA in ogni zone (host fisico ESXi) della region è presente un router BGP.