Il networking di Kubernetes inizia quasi sempre con una richiesta DNS, pertanto il DNS ha un ampio impatto sull’applicazione e sulle prestazioni del cluster, sulla scalabilità e sulla resilienza, ha sottolineato Google Cloud.
E questo è il motivo per cui Google Cloud ha ora rilasciato Cloud DNS container-native: l’integrazione nativa di Cloud DNS con Google Kubernetes Engine (GKE) per fornire la risoluzione Service DNS in-cluster con Cloud DNS.
Cloud DNS, lo ricordiamo, è il servizio DNS gestito di Google Cloud, scalabile, affidabile e a bassa latenza.
Diverse nuove funzionalità vengono introdotte quando si utilizza Cloud DNS come provider DNS del cluster, ha messo in evidenza Google Cloud.
Il DNS gestito rimuove la necessità di Pod DNS in-cluster. La risoluzione DNS locale per ogni nodo di Google Kubernetes Engine offre un throughput elevato, con prestazioni DNS scalabili orizzontalmente. Poi, c’è la service discovery multi-region e cross-cluster per i servizi GKE. Infine, l’integrazione con la suite operativa di Google Cloud per il monitoraggio e il logging del DNS.
Il Cloud DNS container-native riduce l’onere operativo per l’amministratore del cluster ovviando alla necessità dei cluster di allocare risorse per la gestione del DNS. Inoltre scala anche in modo trasparente: non c’è più bisogno di preoccuparsi dei colli di bottiglia dovuti all’aumento della domanda per le risoluzioni dei nomi.
Il servizio fornisce capacità per la risoluzione DNS pubblica e privata per le applicazioni GKE al di fuori del cluster. Questa flessibilità apre molti casi d’uso di service discovery che riducono l’attrito introdotto dai confini del cluster.
Infine, gli strumenti esistenti, il monitoraggio e il logging per Cloud DNS possono essere estesi per tutte le risoluzioni DNS all’interno di Google Kubernetes Engine senza sistemi di monitoraggio separati per container e VM.
Nel complesso, Cloud DNS fornisce un’infrastruttura DNS altamente disponibile e distribuita a livello globale, gestita interamente da Google.
Con Cloud DNS, ogni nuovo servizio crea un record DNS che può essere risolto localmente sul nodo GKE utilizzando il dataplane Cloud DNS. Il caching e la risoluzione locale di Cloud DNS garantiscono che le richieste DNS non debbano attraversare la rete, migliorando drasticamente le prestazioni.
Con una nuova modalità di funzionamento denominata cluster-scope DNS, ogni cluster GKE ottiene la propria zona DNS privata. È possibile risolvere solo i servizi nell’ambito di questa zona DNS, e le VM o i Pod al di fuori del cluster non hanno visibilità sui record DNS di quel cluster.
Questo permette ai cluster di Google Kubernetes Engine che usano kube-dns di migrare in modo trasparente al Cloud DNS senza dover fare modifiche all’applicazione. I record vengono sincronizzati automaticamente tra i Cloud DNS con il ClusterIP o i Pod IP a seconda del tipo di servizio.
Grazie alla sua scala globale e multi-region, Cloud DNS permette una nuova modalità di funzionamento in Google Kubernetes Engine chiamata VPC-scope DNS. Questa permette ai record DNS di GKE di essere risolvibili all’interno dell’intero VPC per una service discovery veramente globale e multi-cluster.
Con la nuova capacità di personalizzare il dominio DNS del cluster, Google Kubernetes Engine può ora fornire domini unici per ogni cluster, consentendo loro di essere risolti in modo univoco da un cluster GKE in una regione diversa, una VM che non fa parte di GKE, o anche un client on-premise che ha accesso attraverso una VPN.
VPC-scope DNS crea un unico dominio di service discovery su tutti i cluster GKE e i client della rete. Questo rilevamento dei servizi senza soluzione di continuità è completamente automatico e può essere facilmente abilitato su una base per cluster.
Tra il rilevamento globale dei servizi, la risoluzione DNS locale su ogni nodo e l’integrazione con la suite di operazioni e l’osservabilità di Google Cloud, Cloud DNS container-native secondo Google Cloud migliora notevolmente sia l’esperienza dell’operatore che le prestazioni delle applicazioni.