Cluster et charge de travail GKE de production de niveau Enterprise

Créez un cluster et une charge de travail Google Kubernetes Engine (GKE) à haute sécurité, optimisés pour la production. Ce guide décrit les modèles suivants, que vous pouvez utiliser pour déployer une application Web de production :

  • Modèle de cluster GKE de production de niveau Enterprise : créez l'infrastructure de base requise pour une application de production. Ce modèle configure un cluster GKE privé et sécurisé, optimisé pour l'intégrité, la mise en réseau avancée et la reprise après sinistre.

  • Charge de travail GKE de production de niveau Enterprise (preview) : déployez un graphique Helm qui inclut la configuration d'une application Web sans état à disponibilité élevée. La charge de travail est configurée pour améliorer la sécurité, la fiabilité et la continuité du service.

Par exemple, vous pouvez déployer les modèles de cluster et de charge de travail pour répondre aux besoins commerciaux suivants :

Exemple Besoin Implémentation
Plate-forme de trading mondiale Une institution financière a besoin d'une plate-forme de trading à faible latence et distribuée à l'échelle mondiale, avec un temps d'activité maximal, une sécurité rigoureuse et une conformité auditable pour gérer les transactions à haute fréquence. Utilisez des clusters multirégionaux distribués à l'échelle mondiale avec une mise en réseau avancée pour garantir une latence et une résilience ultra-faibles. Mettez en œuvre des règles de réseau strictes, des configurations de cluster privé et des fonctionnalités de sécurité avancées pour la protection des données et la conformité réglementaire.
Plate-forme SaaS mutualisée Un fournisseur de logiciels en tant que service (SaaS) doit héberger une plate-forme hautement évolutive, sécurisée et optimisée en termes de coûts pour des milliers de clients professionnels. Cela nécessite une isolation stricte des locataires, une allocation dynamique des ressources et une livraison continue de nouvelles fonctionnalités sans temps d'arrêt. Utilisez des clusters multilocataires avec une isolation robuste des espaces de noms, une segmentation du réseau et une gestion des quotas pour assurer un partage équitable des ressources et la sécurité entre les locataires.
Inférence en temps réel pour les opérations critiques Une entreprise doit déployer des modèles d'IA/de ML pour l'inférence en temps réel dans des applications de détection des fraudes critiques. Cela nécessite une latence extrêmement faible, un débit élevé et la capacité de s'adapter rapidement aux nouvelles versions de modèles avec une auditabilité complète. Configurez des clusters avec des pools de nœuds spécialisés pour l'inférence d'IA. Assurez une connectivité réseau à faible latence et un routage efficace du trafic vers les points de terminaison d'inférence.

Architecture

L'image suivante montre les composants et les connexions du modèle :

Cluster connecté à un pool de nœuds dans le canevas de conception

Voici les configurations des composants de ce modèle :

  • Cluster GKE Standard : cluster sur lequel s'exécute votre charge de travail.

    Le tableau suivant décrit la configuration du cluster dans ce modèle :

    Configuration Objectif
    location: us-central1 Garantit la localité et la conformité des données dans une limite géographique. Une configuration multizone dans la région offre une haute disponibilité.
    network: projects/PROJECT_ID/global/networks/enterprise-vpc Spécifie un VPC préexistant généralement conçu pour la segmentation et la connectivité réseau.
    subnetwork: projects/PROJECT_ID/regions/us-central1/subnetworks/gke-subnet Spécifie un sous-réseau pour le cluster dans le VPC, généralement conçu avec une allocation d'adresses IP et une isolation du réseau appropriées.
    master_authorized_networks_config: [{"cidr_block": "10.0.0.0/8", "display_name": "Internal Network"}] Limite l'accès au point de terminaison du plan de contrôle à des blocs CIDR d'adresses IP spécifiques et fiables. Cela empêche tout accès non autorisé aux API de gestion des clusters.
    private_cluster_config.enable_private_endpoint: true Garantit que le plan de contrôle n'est accessible qu'à l'aide d'adresses IP internes au sein du VPC ou des réseaux autorisés. Cela renforce la sécurité en supprimant l'exposition publique.
    private_cluster_config.enable_private_nodes: true Garantit que tous les nœuds de calcul ne disposent que d'adresses IP privées, ce qui les isole de l'Internet public et réduit la surface d'attaque.
    release_channel: STABLE Des mises à jour prévisibles et minutieusement testées permettent de maintenir la stabilité dans un environnement de production.
    network_policy.enabled: true Active la règle de réseau Kubernetes, qui permet de contrôler la communication entre les pods pour améliorer la sécurité et la microsegmentation.
    binary_authorization: true Applique des stratégies de déploiement, en veillant à ce que seules les images de conteneurs fiables et signées puissent s'exécuter sur le cluster.
    database_encryption: {"state": "ENCRYPTED_WITH_CMEK", "key_name": "projects/PROJECT_ID/locations/us-central1/keyRings/gke-keyring/cryptoKeys/gke-etcd-key"} Les clés de chiffrement gérées par le client (CMEK) chiffrent la base de données, ce qui assure la sécurité des données et répond aux exigences de conformité.
    workload_identity_config: {"enabled": true} Permet aux comptes de service Kubernetes d'agir en tant que comptes de service Google Cloud , ce qui permet un accès précis et sécurisé aux ressources à l'aide d'IAM.
    logging_config et monitoring_config sont définis sur {"component_config": {"enable_components": ["SYSTEM_COMPONENTS", "WORKLOADS"]}} Il s'intègre à Cloud Logging et Cloud Monitoring, ce qui garantit une observabilité, un audit et des alertes complets pour les charges de travail de production.
    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"}} Les intervalles de maintenance contrôlent le moment où GKE effectue les mises à niveau automatiques, ce qui minimise les perturbations des applications critiques.
    enable_shielded_nodes: true Les nœuds GKE protégés offrent des fonctionnalités de sécurité telles que le démarrage sécurisé et la surveillance de l'intégrité pour se protéger contre les rootkits et les logiciels malveillants au niveau du démarrage.
    gateway_api_config: {"channel": "CHANNEL_STANDARD"} Gestion avancée du trafic pour le routage complexe, l'équilibrage de charge et la gestion des API dans les applications d'entreprise.
    security_posture_config: {"mode": "ENTERPRISE", "vulnerability_mode": "VULNERABILITY_ENTERPRISE"} Gestion avancée de la stratégie de sécurité, y compris l'analyse des failles et l'application des règles.
  • Pool de nœuds GKE : groupe de nœuds de calcul qui exécutent les conteneurs de l'application.

    Le tableau suivant décrit les configurations de pool de nœuds dans ce modèle :

    Configuration Objectif
    location: us-central1. Spécifie la région dans laquelle ce pool de nœuds est créé. Comme pour l'emplacement du cluster, cela garantit que les ressources du pool de nœuds se trouvent dans une seule zone géographique.
    autoscaling: {"max_node_count":3, "min_node_count":1}. Configure l'autoscaler de cluster pour ce pool de nœuds. Garantit que le pool de nœuds conserve toujours au moins un nœud et définit la limite supérieure à trois nœuds pour contrôler les coûts et la consommation de ressources.
    node_config: {"machine_type":"e2-medium", "oauth_scopes":["https://www.googleapis.com/auth/cloud-platform"], "shielded_instance_config":{"enable_secure_boot":true}}. Regroupe les configurations des nœuds de ce pool. Le type de machine est un équilibre entre processeur et mémoire adapté aux charges de travail à usage général. Définit l'accès accordé au compte de service. Active le démarrage sécurisé pour les instances de VM protégées, ce qui permet de se protéger contre les logiciels malveillants au niveau du démarrage.

Configuration du chart Helm

Le tableau suivant liste les configurations de chart Helm qui ont été personnalisées pour déployer et mettre à l'échelle une application Web de base sur GKE.

Configuration Objectif
replicaCount: 3 Crée trois répliques initiales pour établir un niveau initial de redondance et une haute disponibilité de base pour l'application.
image.repository: gcr.io/google-samples/hello-app Utilise une image Docker de serveur Web de base comme espace réservé.
resources.requests: {"cpu": "100m", "memory": "128Mi"} Spécifie la quantité minimale de processeur et de mémoire réservée à chaque pod, ce qui garantit la disponibilité des ressources et une planification efficace.
resources.limits: {"cpu": "250m", "memory": "256Mi"} Spécifie la quantité maximale de processeur et de mémoire réservée à chaque pod, ce qui empêche un seul pod de monopoliser les ressources.
networkPolicy.enabled: true Active les règles de réseau Kubernetes pour l'application, ce qui vous permet de définir des règles pour la communication des pods entre eux et avec d'autres points de terminaison du réseau, en appliquant la segmentation et l'isolation du réseau.
service: {"type": "ClusterIP", "port": 80} Configure le service pour l'accès interne au cluster sur le port HTTP standard.
pdb: {"enabled": true, "minAvailable": 1} Permet à un budget d'interruptions de pods de garantir qu'au moins une instance répliquée reste disponible lors des interruptions volontaires, ce qui maintient une haute disponibilité.

Créer votre application Web

Utilisez les modèles Cluster et charge de travail GKE de production de niveau Enterprise pour déployer votre application Web.

Déployer votre infrastructure Web

Configurez et déployez le modèle de cluster GKE de production de niveau Enterprise pour créer l'infrastructure de base sur laquelle s'exécute votre charge de travail Web.

  1. Dupliquez et déployez le modèle Cluster GKE de production de niveau Enterprise en tant qu'application.

    Un cluster GKE est créé dans le projet de déploiement que vous choisissez.

  2. Configurez les composants. Pour en savoir plus, consultez les ressources suivantes :

  3. Cliquez sur Déployer. Le déploiement de l'application prend plusieurs minutes.

  4. Dans le panneau Détails de l'application, cliquez sur l'onglet Sorties.

  5. Identifiez le cluster_id de votre application. Vous utiliserez ces informations lorsque vous déploierez votre chart Helm.

Déployer votre charge de travail Web

Utilisez le modèle Charge de travail GKE de production de niveau Enterprise pour déployer votre charge de travail Web dans le cluster que vous avez créé. Vous allez déployer un chart Helm qui inclut la configuration de votre charge de travail Web.

  1. Sur la page Catalogue Google, dans le modèle Charge de travail GKE de production de niveau Enterprise, cliquez sur Créer une application.

  2. Dans le champ Nom, saisissez un nom unique pour votre application.

  3. Dans la zone Cible de déploiement GKE, procédez comme suit :

    1. Dans la liste des projets, sélectionnez le projet dans lequel vous avez déployé le cluster GKE à partir de votre application Cluster GKE de production de niveau Enterprise.

    2. Dans la liste Région, sélectionnez la région dans laquelle vous avez déployé le cluster GKE.

    3. Dans la liste Clusters, sélectionnez le cluster GKE déployé.

    4. Dans la liste Espace de noms, saisissez l'espace de noms de votre charge de travail. Si vous n'avez pas modifié le nom, saisissez default.

    5. Cliquez sur Créer une application.

    L'application est créée et les fichiers de configuration s'affichent.

  4. Dans le panneau Helm chart (Graphique Helm), procédez comme suit :

    1. Consultez les détails de la configuration.

    2. Facultatif : personnalisez la configuration pour répondre à vos besoins spécifiques.

    3. Pour déployer le graphique Helm sur votre cluster, cliquez sur Deploy (Déployer).

      Pour connaître la procédure détaillée, consultez Déployer des applications.

    Après quelques minutes, la configuration du graphique Helm est déployée sur votre cluster GKE.

Étapes suivantes