Créez un cluster et une charge de travail Google Kubernetes Engine (GKE) hautement sécurisés et 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 entreprise : 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 entreprise (preview) : déployez un chart 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é des services.
Par exemple, vous pouvez déployer les modèles de cluster et de charge de travail pour répondre aux besoins suivants de votre entreprise :
| Exemple | Besoin | Implémentation |
|---|---|---|
| Plate-forme de trading mondiale | Un établissement financier a besoin d'une plate-forme de trading à faible latence et distribuée à l'échelle mondiale, avec une disponibilité maximale, une sécurité stricte 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 ultra-faible et une résilience optimale. Implémentez 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 d'entreprise, nécessitant 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 mutualisés avec une isolation robuste des espaces de noms, une segmentation du réseau et une gestion des quotas pour garantir un partage équitable des ressources et la sécurité entre les locataires. |
| Inférence en temps réel pour les opérations critiques | Une organisation doit déployer des modèles d'IA/ML pour l'inférence en temps réel dans des applications de détection des fraudes critiques, nécessitant une latence extrêmement faible, un débit élevé et la possibilité de s'adapter rapidement aux nouvelles versions de modèle avec une auditabilité complète. | Configurez des clusters avec des pools de nœuds spécialisés pour l'inférence d'IA. Assurez-vous d'une connectivité réseau à faible latence et activez 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 :
Les configurations des composants de ce modèle sont décrites ci-dessous :
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-central1Garantit 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-vpcSpécifie un VPC préexistant généralement conçu pour la segmentation et la connectivité du réseau. subnetwork: projects/PROJECT_ID/regions/us-central1/subnetworks/gke-subnetSpé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 réseau appropriées. master_authorized_networks_config: [{"cidr_block": "10.0.0.0/8", "display_name": "Internal Network"}]Restreint l'accès au point de terminaison du plan de contrôle à des blocs CIDR IP spécifiques et fiables. Cela empêche tout accès non autorisé aux API de gestion de cluster. private_cluster_config.enable_private_endpoint: trueGarantit que le plan de contrôle n'est accessible qu'à l'aide d'adresses IP internes dans le VPC ou les réseaux autorisés. Cela améliore la sécurité en supprimant l'exposition publique. private_cluster_config.enable_private_nodes: trueGarantit 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: STABLEDes mises à jour prévisibles et minutieusement testées maintiennent la stabilité dans un environnement de production. network_policy.enabled: trueActive la règle de réseau Kubernetes, qui permet de contrôler la communication entre les pods pour une sécurité et une microsegmentation améliorées. binary_authorization: trueApplique des règles de déploiement, en veillant à ce que seules les images de conteneur 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, assurant ainsi la sécurité des données et répondant aux exigences de conformité. workload_identity_config: {"enabled": true}Permet aux comptes de service Kubernetes d'agir en tant que Google Cloud comptes de service, ce qui permet un accès sécurisé et précis aux ressources à l'aide d'IAM. logging_configetmonitoring_configsont définis sur{"component_config": {"enable_components": ["SYSTEM_COMPONENTS", "WORKLOADS"]}}S'intègre à Cloud Logging et Cloud Monitoring, garantissant 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 des mises à niveau automatiques, ce qui minimise les interruptions des applications critiques. enable_shielded_nodes: trueLes 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 du 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 le processeur et la 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 répertorie les configurations du chart Helm, qui ont été personnalisées pour le déploiement et la mise à l'échelle d'une application Web de base sur GKE.
| Configuration | Objectif |
|---|---|
replicaCount: 3 |
Crée trois instances répliquées 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 pour 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 pour chaque pod, ce qui empêche la monopolisation des ressources par un seul pod. |
networkPolicy.enabled: true |
Active les règles de réseau Kubernetes pour l'application, ce qui vous permet de définir des règles sur la façon dont les pods communiquent 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} |
Active un budget d'interruption de pod pour s'assurer 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 entreprise pour déployer votre application Web.
Déployer votre infrastructure Web
Configurez et déployez le modèle Cluster GKE de production de niveau entreprise pour créer l'infrastructure de base sur laquelle s'exécute votre charge de travail Web.
Dupliquez et déployez le modèle Cluster GKE de production de niveau entreprise en tant qu'application.
Un cluster GKE est créé dans le projet de déploiement que vous choisissez.
Configurez les composants. Pour en savoir plus, consultez les ressources suivantes :
Cliquez sur Déployer. L'application se déploie après plusieurs minutes.
Dans le panneau Détails de l'application, cliquez sur l'onglet Sorties.
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 entreprise pour déployer votre charge de travail Web dans le cluster que vous avez créé. Vous déploierez un chart Helm qui inclut la configuration de votre charge de travail Web.
Sur la page Catalogue Google, dans le modèle Charge de travail GKE de production de niveau entreprise, cliquez sur Créer une application.
Dans le champ Nom, saisissez un nom unique pour votre application.
Dans la zone Cible de déploiement GKE, procédez comme suit :
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 entreprise.
Dans la liste Région, sélectionnez la région dans laquelle vous avez déployé le cluster GKE.
Dans la liste Clusters, sélectionnez le cluster GKE déployé.
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.Cliquez sur Créer une application.
L'application est créée et les fichiers de configuration s'affichent.
Dans le panneau Chart Helm, procédez comme suit :
Consultez les détails de la configuration.
Facultatif : personnalisez la configuration pour répondre à vos besoins spécifiques.
Pour déployer le chart Helm sur votre cluster, cliquez sur Déployer.
Pour connaître la procédure détaillée, consultez Déployer des applications.
Après plusieurs minutes, la configuration du chart Helm est déployée sur votre cluster GKE.
Étape suivante
- Dupliquez et personnalisez ce modèle en vous basant sur les modèles Google.
- Définissez vos propres configurations en concevant des modèles d'application.
- Identifiez les bonnes pratiques architecturales générales avec le Google Cloud framework d'architecture.