Cluster GKE e workload di produzione di livello enterprise

Crea un cluster e un workload Google Kubernetes Engine (GKE) ad alta sicurezza ottimizzati per la produzione. Questa guida descrive i seguenti modelli, che puoi utilizzare per eseguire il deployment di un'applicazione web di produzione:

  • Modello di cluster GKE di produzione di livello enterprise: crea l'infrastruttura di base necessaria per un'applicazione di produzione. Questo modello configura un cluster GKE privato e sicuro ottimizzato per l'integrità, il networking avanzato e ripristino di emergenza.

  • Carico di lavoro GKE di produzione di livello aziendale (anteprima): esegui il deployment di un grafico Helm che include la configurazione per un'applicazione web stateless a disponibilità elevata. Il workload è configurato per migliorare la sicurezza, l'affidabilità e la continuità del servizio.

Ad esempio, puoi eseguire il deployment dei modelli di cluster e carichi di lavoro per soddisfare le seguenti esigenze aziendali:

Esempio Esigenza aziendale Implementazione
Piattaforma di trading globale Un istituto finanziario richiede una piattaforma di trading distribuita a livello globale con bassa latenza, massimo uptime, sicurezza rigorosa e conformità verificabile per gestire operazioni ad alta frequenza. Utilizza cluster multiregionali distribuiti a livello globale con networking avanzato per garantire resilienza e latenza molto bassa. Implementa policy di rete efficaci, configurazioni di cluster privato e funzionalità di sicurezza avanzate per la protezione dei dati e la conformità legale.
Piattaforma SaaS multi-tenant Un fornitore di software come servizio (SaaS) deve ospitare una piattaforma altamente scalabile, sicura e ottimizzata per i costi per migliaia di clienti aziendali, richiedendo un rigoroso isolamento dei tenant, un'allocazione dinamica delle risorse e una distribuzione continua di nuove funzionalità senza tempi di inattività. Utilizza cluster multi-tenant con un isolamento robusto degli spazi dei nomi, segmentazione della rete e gestione delle quote per garantire la condivisione equa delle risorse e la sicurezza tra i tenant.
Inferenza in tempo reale per operazioni critiche Un'organizzazione deve eseguire il deployment di modelli di AI/ML per l'inferenza in tempo reale in applicazioni di rilevamento delle frodi mission-critical, che richiedono una latenza estremamente bassa, un throughput elevato e la capacità di adattarsi rapidamente alle nuove versioni del modello con piena controllabilità. Configura i cluster con node pool specializzati per l'inferenza AI. Garantisci la connettività di rete a bassa latenza e abilita il routing efficiente del traffico agli endpoint di inferenza.

Architettura

La seguente immagine mostra i componenti e le connessioni nel modello:

Un cluster connesso a un pool di nodi nel canvas di progettazione

Di seguito sono descritte le configurazioni dei componenti in questo modello:

  • Cluster GKE Standard: un cluster in cui viene eseguito il carico di lavoro.

    La tabella seguente descrive la configurazione del cluster in questo modello:

    Configurazione Finalità
    location: us-central1 Garantisce la località e la conformità dei dati all'interno di un confine geografico. Una configurazione multizona all'interno della regione offre un'elevata affidabilità.
    network: projects/PROJECT_ID/global/networks/enterprise-vpc Specifica un VPC preesistente in genere progettato per la segmentazione e la connettività di rete.
    subnetwork: projects/PROJECT_ID/regions/us-central1/subnetworks/gke-subnet Specifica una subnet per il cluster nel VPC, in genere progettata con un'allocazione IP e un isolamento di rete adeguati.
    master_authorized_networks_config: [{"cidr_block": "10.0.0.0/8", "display_name": "Internal Network"}] Limita l'accesso all'endpoint del control plane a blocchi CIDR IP specifici e attendibili. In questo modo si impedisce l'accesso non autorizzato alle API di gestione dei cluster.
    private_cluster_config.enable_private_endpoint: true Garantisce che il control plane sia accessibile solo utilizzando indirizzi IP interni all'interno del VPC o delle reti autorizzate. In questo modo la sicurezza viene migliorata rimuovendo l'esposizione pubblica.
    private_cluster_config.enable_private_nodes: true Garantisce che tutti i nodi worker abbiano solo indirizzi IP privati, isolandoli dalla rete internet pubblica e riducendo la superficie di attacco.
    release_channel: STABLE Aggiornamenti prevedibili e testati a fondo mantengono la stabilità in un ambiente di produzione.
    network_policy.enabled: true Abilita il criterio di rete Kubernetes, che fornisce il controllo della comunicazione pod-to-pod per una maggiore sicurezza e microsegmentazione.
    binary_authorization: true Applica i criteri di deployment, garantendo che sul cluster possano essere eseguite solo immagini container attendibili e firmate.
    database_encryption: {"state": "ENCRYPTED_WITH_CMEK", "key_name": "projects/PROJECT_ID/locations/us-central1/keyRings/gke-keyring/cryptoKeys/gke-etcd-key"} Le chiavi di crittografia gestite dal cliente (CMEK) criptano il database, garantendo la sicurezza dei dati e soddisfacendo i requisiti di conformità.
    workload_identity_config: {"enabled": true} Consente ai service account Kubernetes di fungere da service account Google Cloud , consentendo l'accesso sicuro e granulare alle risorse utilizzando IAM.
    logging_config e monitoring_config sono impostati su {"component_config": {"enable_components": ["SYSTEM_COMPONENTS", "WORKLOADS"]}} Si integra con Cloud Logging e Cloud Monitoring, garantendo osservabilità, controllo e avvisi completi per i carichi di lavoro di produzione.
    maintenance_policy: {"daily_maintenance_window": {"start_time": "03:00"}, "recurring_window": {"start_time": "00:00", "end_time": "04:00", "recurrence": "FREQ=WEEKLY;BYDAY=SAT,SUN"}} I periodi di manutenzione controllano quando GKE esegue gli upgrade automatici, riducendo al minimo le interruzioni delle applicazioni critiche.
    enable_shielded_nodes: true I nodi GKE schermati forniscono funzionalità di sicurezza come l'avvio protetto e il monitoraggio dell'integrità per proteggere da rootkit e malware a livello di avvio.
    gateway_api_config: {"channel": "CHANNEL_STANDARD"} Gestione avanzata del traffico per routing complesso, bilanciamento del carico e gestione delle API nelle applicazioni aziendali.
    security_posture_config: {"mode": "ENTERPRISE", "vulnerability_mode": "VULNERABILITY_ENTERPRISE"} Gestione avanzata della strategia di sicurezza, inclusi analisi delle vulnerabilità e applicazione dei criteri.
  • Pool di nodi GKE: un gruppo di nodi worker che eseguono i container dell'applicazione.

    La tabella seguente descrive le configurazioni del pool di nodi in questo modello:

    Configurazione Finalità
    location: us-central1. Specifica la regione in cui viene creato questo pool di nodi. Analogamente alla posizione del cluster, ciò garantisce che le risorse del pool di nodi si trovino in un'unica area geografica.
    autoscaling: {"max_node_count":3, "min_node_count":1}. Configura il gestore della scalabilità automatica del cluster per questo pool di nodi. Garantisce che il pool di nodi mantenga sempre almeno un nodo e imposta il limite superiore a tre nodi per controllare i costi e il consumo di risorse.
    node_config: {"machine_type":"e2-medium", "oauth_scopes":["https://www.googleapis.com/auth/cloud-platform"], "shielded_instance_config":{"enable_secure_boot":true}}. Configurazioni dei gruppi per i nodi all'interno di questo pool. Il tipo di macchina è un equilibrio tra CPU e memoria adatto ai carichi di lavoro per uso generico. Definisce l'accesso concesso al account di servizio. Attiva l'avvio protetto per le istanze Shielded VM, contribuendo a proteggere da malware a livello di avvio.

Configurazione del grafico Helm

La tabella seguente elenca le configurazioni del grafico Helm, che sono state personalizzate per il deployment e lo scaling di un'applicazione web di base su GKE.

Configurazione Finalità
replicaCount: 3 Crea tre repliche iniziali per stabilire un livello iniziale di ridondanza e alta affidabilità di base per l'applicazione.
image.repository: gcr.io/google-samples/hello-app Utilizza un'immagine Docker di base del server web come segnaposto.
resources.requests: {"cpu": "100m", "memory": "128Mi"} Specifica la quantità minima di CPU e memoria riservata a ogni pod, garantendo risorse disponibili e una pianificazione efficiente.
resources.limits: {"cpu": "250m", "memory": "256Mi"} Specifica la quantità massima di CPU e memoria riservata per ogni pod, impedendo la monopolizzazione delle risorse da parte di un singolo pod.
networkPolicy.enabled: true Attiva i criteri di rete Kubernetes per l'applicazione, il che ti consente di definire regole per la comunicazione dei pod tra loro e con altri endpoint di rete, applicando la segmentazione e l'isolamento della rete.
service: {"type": "ClusterIP", "port": 80} Configura il servizio per l'accesso interno al cluster sulla porta HTTP standard.
pdb: {"enabled": true, "minAvailable": 1} Consente a un budget di interruzione dei pod di garantire che almeno una replica rimanga disponibile durante le interruzioni volontarie, mantenendo l'alta affidabilità.

Crea la tua applicazione web

Utilizza i modelli Cluster GKE e workload di produzione di livello aziendale per eseguire il deployment della tua applicazione web.

Esegui il deployment dell'infrastruttura web

Configura ed esegui il deployment del modello di cluster GKE di produzione di livello aziendale per creare l'infrastruttura di base in cui viene eseguito il tuo carico di lavoro web.

  1. Duplica ed esegui il deployment del modello Cluster GKE di produzione di livello enterprise come applicazione.

    Un cluster GKE viene creato nel progetto di deployment che scegli.

  2. Configura i componenti. Per ulteriori informazioni, consulta le seguenti risorse:

  3. Fai clic su Esegui il deployment. L'applicazione viene implementata dopo diversi minuti.

  4. Nel riquadro Dettagli applicazione, fai clic sulla scheda Output.

  5. Identifica cluster_id per la tua applicazione. Utilizzerai queste informazioni quando esegui il deployment del grafico Helm.

Esegui il deployment del workload web

Utilizza il modello Carico di lavoro GKE di produzione di livello aziendale per eseguire il deployment del tuo carico di lavoro web nel cluster che hai creato. Esegui il deployment di un grafico Helm che include la configurazione del tuo workload web.

  1. Nella pagina Catalogo Google, nel modello Carico di lavoro GKE di produzione di livello aziendale, fai clic su Crea nuova applicazione.

  2. Nel campo Nome, inserisci un nome univoco per l'applicazione.

  3. Nell'area Destinazione di deployment GKE, segui questi passaggi:

    1. Dall'elenco dei progetti, seleziona il progetto in cui hai eseguito il deployment del cluster GKE dall'applicazione Cluster GKE di produzione di livello aziendale.

    2. Nell'elenco Regione, seleziona la regione in cui hai eseguito il deployment del cluster GKE.

    3. Dall'elenco Cluster, seleziona il cluster GKE di cui è stato eseguito il deployment.

    4. Nell'elenco Spazio dei nomi, inserisci lo spazio dei nomi per il tuo workload. Se non hai modificato il nome, inserisci default.

    5. Fai clic su Crea applicazione.

    L'applicazione viene creata e vengono visualizzati i file di configurazione.

  4. Nel riquadro Grafico Helm, segui questi passaggi:

    1. Esamina i dettagli di configurazione.

    2. (Facoltativo) Personalizza la configurazione in base alle tue esigenze specifiche.

    3. Per eseguire il deployment del grafico Helm nel cluster, fai clic su Esegui il deployment.

      Per i passaggi dettagliati, vedi Eseguire il deployment delle applicazioni.

    Dopo alcuni minuti, la configurazione del grafico Helm viene implementata nel cluster GKE.

Passaggi successivi