Cluster GKE e workload di produzione di livello enterprise

Crea un cluster Google Kubernetes Engine (GKE) e un carico di lavoro 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 richiesta 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 Enterprise (anteprima): esegui il deployment di un grafico Helm che include la configurazione per un'applicazione web stateless a elevata disponibilità. Il carico di lavoro è 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 e a bassa latenza con il massimo tempo di attività, una sicurezza rigorosa e una conformità verificabile per gestire le transazioni ad alta frequenza. Utilizza cluster multi-regionali distribuiti a livello globale con networking avanzato per garantire una latenza molto bassa e resilienza. Implementa criteri 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 as a service (SaaS) deve ospitare una piattaforma altamente scalabile, sicura e ottimizzata per i costi per migliaia di clienti aziendali, che richiedono un rigoroso isolamento dei tenant, un'allocazione dinamica delle risorse e la distribuzione continua di nuove funzionalità senza tempi di inattività. Utilizza cluster multi-tenant con un solido isolamento degli spazi dei nomi, segmentazione della rete e gestione delle quote per garantire una 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 dei modelli con una completa verificabilità. 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à dei dati e la conformità entro un confine geografico. Una configurazione multi-zona 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à della 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 appropriati.
    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 si migliora la sicurezza 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 Gli aggiornamenti prevedibili e accuratamente testati 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 micro-segmentazione.
    binary_authorization: true Applica i criteri di deployment, assicurando 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, fornendo la sicurezza dei dati e soddisfacendo i requisiti di conformità.
    workload_identity_config: {"enabled": true} Consente ai service account Kubernetes di fungere da Google Cloud service account, 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à, audit 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, bilanciamento del carico e gestione delle API complessi nelle applicazioni aziendali.
    security_posture_config: {"mode": "ENTERPRISE", "vulnerability_mode": "VULNERABILITY_ENTERPRISE"} Gestione avanzata della security posture, inclusa analisi delle vulnerabilità e l'applicazione dei criteri.
  • Node pool GKE: un gruppo di nodi worker che eseguono i container dell'applicazione.

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

    Configurazione Finalità
    location: us-central1. Specifica la regione in cui viene creato questo pool di nodi. Analogamente alla località del cluster, ciò garantisce che le risorse del pool di nodi si trovino in una singola 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}}. Raggruppa le configurazioni per i nodi all'interno di questo pool. Il tipo di macchina è un bilanciamento di CPU e memoria adatto ai carichi di lavoro per uso generico. Definisce l'accesso concesso al account di servizio. Abilita 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 la scalabilità di un'applicazione web di base su GKE.

Configurazione Finalità
replicaCount: 3 Crea tre repliche iniziali per stabilire un livello iniziale di ridondanza e una alta affidabilità di base per l'applicazione.
image.repository: gcr.io/google-samples/hello-app Utilizza un'immagine Docker del server web di base come segnaposto.
resources.requests: {"cpu": "100m", "memory": "128Mi"} Specifica la quantità minima di CPU e memoria riservata per 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, che ti consentono 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} Abilita un budget di interruzione dei pod per garantire che almeno una replica rimanga disponibile durante le interruzioni volontarie, mantenendo un'elevata affidabilità.

Crea la tua applicazione web

Utilizza i modelli Cluster GKE di produzione di livello Enterprise e Carico di lavoro per eseguire il deployment dell'applicazione web.

Esegui il deployment dell'infrastruttura web

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

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

    Viene creato un cluster GKE 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 eseguita dopo alcuni minuti.

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

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

Esegui il deployment del carico di lavoro web

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

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

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

  3. Nell'area Destinazione di deployment GKE, procedi nel seguente modo:

    1. Nell'elenco Progetti, seleziona il progetto in cui hai eseguito il deployment del cluster GKE dall'applicazione Cluster GKE di produzione di livello Enterprise.

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

    3. Nell'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 carico di lavoro. 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, procedi nel seguente modo:

    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 la procedura dettagliata, vedi Esegui il deployment delle applicazioni.

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

Passaggi successivi