La passerelle d'inférence multicluster Google Kubernetes Engine (GKE) équilibre la charge de vos charges de travail d'inférence d'IA/ML sur plusieurs clusters GKE. Elle intègre des passerelles multiclusters GKE pour le routage du trafic entre clusters avec la passerelle d'inférence pour la mise en service de modèles d'IA/ML. Cette intégration améliore la scalabilité et la haute disponibilité de vos déploiements. Ce document explique les concepts clés et les avantages de la passerelle.
Pour en savoir plus sur le déploiement de la passerelle d'inférence multicluster GKE, consultez Configurer la passerelle d'inférence multicluster GKE.
Pour comprendre ce document, vous devez connaître les éléments suivants :
- Orchestration IA/ML sur GKE.
- Terminologie de l'IA générative.
- Concepts de mise en réseau GKE y compris les services, la passerelle multicluster GKE et l'API Gateway.
- Équilibrage de charge dans Google Cloud, en particulier l'interaction des équilibreurs de charge avec GKE.
Ce document s'adresse aux personas suivantes :
- Ingénieurs en machine learning (ML), administrateurs et opérateurs de plate-forme, et spécialistes des données et de l'IA qui souhaitent utiliser les fonctionnalités d'orchestration de conteneurs Kubernetes pour diffuser des charges de travail d'IA/ML.
- Architectes cloud ou spécialistes de la mise en réseau qui interagissent avec la mise en réseau Kubernetes.
Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans Google Cloud le contenu, consultez Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.
Avantages de la passerelle d'inférence multicluster GKE
La passerelle d'inférence multicluster GKE offre plusieurs avantages pour la gestion de vos charges de travail d'inférence d'IA/ML, y compris les suivants :
- Améliore la haute disponibilité et la tolérance aux pannes grâce à un équilibrage de charge intelligent sur plusieurs clusters GKE, même dans différentes régions géographiques. Vos charges de travail d'inférence restent disponibles, et le système redirige automatiquement les requêtes si un cluster ou une région rencontre des problèmes, ce qui réduit les temps d'arrêt.
- Améliore la scalabilité et optimise l'utilisation des ressources en regroupant les ressources GPU et TPU de différents clusters pour gérer l'augmentation de la demande. Ce regroupement permet à vos charges de travail de dépasser la capacité d'un seul cluster et d'utiliser efficacement les ressources disponibles dans votre parc.
- Maximise les performances grâce à un routage optimisé à l'échelle mondiale. La passerelle utilise des métriques avancées, telles que l'utilisation du cache clé-valeur (KV) de tous les clusters, pour prendre des décisions de routage efficaces. Cette approche permet de s'assurer que les requêtes sont envoyées au cluster le mieux équipé pour les gérer, ce qui maximise les performances globales de votre parc d'inférence d'IA/ML.
Limites
La passerelle d'inférence multicluster GKE présente les limites suivantes :
Intégration de Model Armor : la passerelle d'inférence multicluster GKE ne prend pas en charge l'intégration de Model Armor.
Rapports sur la latence d'Envoy Proxy : Envoy Proxy ne signale la latence des requêtes que pour les requêtes réussies (
2xx). Il ignore les erreurs et les délais d'attente. Ce comportement peut entraîner une sous-estimation de la charge réelle sur les backends en échec par l'équilibreur de charge global (GSLB), ce qui peut entraîner une redirection du trafic vers des services déjà surchargés. Pour atténuer ce problème, configurez un délai d'attente de requête plus long. Par exemple, une valeur de600sest recommandée.Limites des groupes de points de terminaison du réseau (NEG) : comporte une limite de 50 NEG par Google Cloud service de backend. Lorsque vous utilisez un InferencePool multiport, chaque port de chaque zone crée un NEG dédié. Par exemple, un InferencePool avec huit ports dans un cluster régional typique (trois zones) génère 24 NEG. Par conséquent, une passerelle multicluster ne peut agréger un tel InferencePool que depuis deux clusters au maximum (deux clusters × 24 NEG = 48 NEG) avant d'atteindre la limite de 50 NEG.
Composants clés
La passerelle d'inférence multicluster GKE utilise plusieurs ressources personnalisées Kubernetes pour gérer les charges de travail d'inférence et le routage du trafic :
- InferencePool : regroupe les backends de serveur de modèle identiques dans votre cluster cible. Cette ressource simplifie la gestion et le scaling de vos instances de diffusion de modèles. Les objets InferencePool multiports sont compatibles avec les déploiements à cluster unique et multiclusters.
InferenceObjective: définit les priorités de routage pour des modèles spécifiques dans un InferencePool. Ce routage permet de s'assurer que certains modèles bénéficient d'une préférence de trafic en fonction de vos besoins.GCPInferencePoolImport: rend vos backends de modèle disponibles pour la configuration du routage à l'aide deHTTPRoutedans le cluster de configuration. Cette ressource est automatiquement créée dans votre cluster de configuration lorsque vous exportez un InferencePool à partir d'un cluster cible. Le cluster de configuration sert de point de contrôle central pour votre environnement multicluster.GCPBackendPolicy: personnalise la manière dont le trafic est équilibré sur vos backends. Par exemple, vous pouvez activer l'équilibrage de charge en fonction de métriques personnalisées ou définir des limites sur les requêtes en cours par point de terminaison pour protéger vos serveurs de modèles.AutoscalingMetric: définit des métriques personnalisées, telles quevllm:kv_cache_usage_perc, à exporter à partir de vos serveurs de modèles. Vous pouvez ensuite utiliser ces métriques dansGCPBackendPolicypour prendre des décisions d'équilibrage de charge plus intelligentes et optimiser les performances et l'utilisation des ressources.
Fonctionnement de la passerelle d'inférence multicluster GKE
La passerelle d'inférence multicluster GKE gère et achemine le trafic vers vos modèles d'IA/ML déployés sur plusieurs clusters GKE. Elle fonctionne comme suit :
- Gestion centralisée du trafic : un cluster de configuration dédié définit vos règles de routage du trafic. Le cluster de configuration sert de point de contrôle central pour votre environnement multicluster. Vous désignez un cluster GKE comme cluster de configuration lorsque vous activez l'objet Ingress multicluster pour votre parc. Cette approche centralisée vous permet de gérer la manière dont les requêtes sont dirigées vers vos modèles sur l'ensemble de votre parc de clusters GKE à partir d'un seul emplacement.
- Déploiement flexible des modèles : vos modèles d'IA/ML réels s'exécutent dans des clusters cibles distincts. Cette séparation vous permet de déployer des modèles là où cela est le plus judicieux (par exemple, plus près des données ou des clusters avec du matériel spécifique).
- Intégration facile des modèles : lorsque vous déployez un modèle dans un cluster cible, vous regroupez ses instances de diffusion à l'aide d'un InferencePool. L'exportation de cet InferencePool le rend automatiquement disponible pour le routage dans votre cluster de configuration.
- Équilibrage de charge intelligent : la passerelle ne se contente pas de distribuer le trafic, elle prend des décisions de routage intelligentes. En la configurant pour qu'elle utilise différents signaux, y compris des métriques personnalisées provenant de vos serveurs de modèles, la passerelle permet de s'assurer que les requêtes entrantes sont envoyées au cluster ou à l'instance de modèle le mieux équipé, ce qui peut maximiser les performances et l'utilisation des ressources. Par exemple, vous pouvez acheminer les requêtes vers le cluster disposant de la capacité d'inférence la plus disponible en fonction de métriques telles que l'utilisation du cache clé-valeur (KV).
Étape suivante
- Pour déployer la passerelle, consultez Configurer la passerelle d'inférence multicluster GKE.
- Pour savoir comment utiliser le champ
scopesdans la ressourceGCPBackendPolicy, consultez Personnaliser les configurations de backend avec les champs d'applicationGCPBackendPolicy.