Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration du routage des sorties du plan de contrôle
Par défaut, Amazon EKS gère le réseau de sortie depuis le plan de contrôle Kubernetes vers les ressources de votre VPC. Utilisez le routage de sortie du plan de contrôle pour modifier ce comportement et gérer vous-même le chemin réseau. Cela vous permet de contrôler totalement la manière dont le trafic provenant des interfaces réseau élastiques (ENI) du plan de contrôle atteint vos ressources VPC. Vous pouvez effectuer le routage via vos propres passerelles NAT, pare-feux ou appareils d'inspection.
Modes de routage de sortie
Amazon EKS prend en charge les modes de routage de sortie du plan de contrôle suivants :
| Mode | Description |
|---|---|
|
|
Comportement par défaut. Amazon EKS gère le chemin de sortie depuis les ENI du plan de contrôle. Il n'est pas nécessaire de configurer des passerelles NAT ou toute autre infrastructure de routage pour le trafic du plan de contrôle. |
|
|
Vous gérez le chemin de sortie depuis le plan de contrôle dans vos sous-réseaux VPC. Vous devez vous assurer que le plan de contrôle peut atteindre les points de terminaison requis (tels que les serveurs Webhook, les fournisseurs OIDC et autres ressources). Vous fournissez un chemin de sortie, tel qu'une passerelle NAT, une instance NAT, une passerelle de transit ou un dispositif de pare-feu. Vous configurez également la table de routage, l'ACL réseau et les règles de groupe de sécurité qui autorisent ce trafic. |
Important
En CUSTOMER_ROUTED mode, vous êtes responsable de garantir une connectivité réseau adéquate depuis le plan de contrôle. Les mauvaises configurations de votre réseau VPC peuvent entraîner l'échec des opérations du plan de contrôle. Ces erreurs de configuration incluent un chemin de sortie manquant, des ACL réseau restrictives ou des groupes de sécurité incorrects. Les opérations concernées incluent l'admission, les appels webhook et l'authentification OIDC.
Conditions préalables
Votre VPC et vos sous-réseaux doivent répondre aux exigences réseau standard d'Amazon EKS. Pour de plus amples informations, veuillez consulter Afficher les exigences réseau Amazon EKS pour les VPC et les sous-réseaux.
En CUSTOMER_ROUTED mode, le serveur d'API Kubernetes envoie le trafic sortant destiné aux clients via les interfaces réseau entre comptes. Amazon EKS crée déjà ces interfaces dans vos sous-réseaux pour la communication entre le plan de contrôle et le nœud. Ce trafic inclut les appels aux webhooks d'admission et aux fournisseurs OIDC. Amazon EKS ne crée pas d'interfaces réseau de sortie distinctes. Ce mode modifie la façon dont les interfaces existantes sont utilisées. Les sous-réseaux qui contiennent ces interfaces doivent répondre aux exigences suivantes :
-
Les sous-réseaux doivent disposer d'une route vers les points de terminaison que le plan de contrôle doit atteindre (tels que les serveurs Webhook et les fournisseurs OIDC). Pour les points de terminaison situés en dehors de votre VPC, cela signifie généralement une route par défaut vers un périphérique de sortie. La route par défaut est
0.0.0.0/0pour IPv4 et::/0pour IPv6. Le périphérique de sortie peut être une passerelle NAT, une instance NAT, un pare-feu ou une passerelle de transit vers un VPC de sortie centralisé. Le choix du dispositif de sortie vous appartient ; Amazon EKS exige uniquement que le chemin fonctionne. -
Les groupes de sécurité sur les interfaces réseau entre comptes doivent autoriser le trafic sortant sur les ports requis par vos charges de travail (par exemple, le port 443 pour les webhooks et les fournisseurs OIDC).
-
Les ACL réseau sur les sous-réseaux doivent autoriser le trafic sortant et la plage de ports éphémères entrants correspondante pour le trafic de retour.
En CUSTOMER_ROUTED mode, le plan de contrôle résout les noms d'hôtes en utilisant la configuration DNS de votre VPC. Cela permet au plan de contrôle d'atteindre les points de terminaison situés dans les zones hébergées privées Route 53 et le DNS local transféré via les points de terminaison Route 53 Resolver.
-
Votre ensemble d'options DHCP VPC doit figurer
AmazonProvidedDNSdans sa liste de serveurs de noms de domaine. Cela est nécessaire pour que le plan de contrôle puisse résoudre les noms DNS au sein du VPC. Si votre cluster utilise des points de terminaison Webhook externes ou des fournisseurs OIDC avec des noms DNS publics, le résolveur doit également résoudre les noms d'hôtes publics. Assurez-vous que le résolveur peut gérer à la fois la résolution VPC et la résolution DNS publique.
Le tableau suivant récapitule le trafic que le plan de contrôle envoie via votre VPC CUSTOMER_ROUTED en mode :
| Trafic | Destination | Port | Remarques |
|---|---|---|---|
|
Webhooks d'admission |
Points de terminaison Webhook (URL définies par le client) |
443 (généralement) |
Uniquement si les webhooks sont configurés. Quitte le VPC via votre périphérique de sortie si le point de terminaison est externe. |
|
Découverte OIDC |
URL de l'émetteur OIDC |
443 |
Uniquement si un fournisseur OIDC est configuré. Quitte le VPC via votre dispositif de sortie si l'émetteur est externe. |
|
Serveurs d'API agrégés |
Points de terminaison du serveur API client |
443 |
Uniquement s'il est configuré. Quitte le VPC via votre périphérique de sortie si le point de terminaison est externe. |
|
API Kubelet |
Adresses IP des nœuds de travail |
10250 |
Il s'agit du trafic entre le plan de contrôle et vos nœuds via le cluster ENI ; il ne traverse pas votre dispositif de sortie. Cela nécessite que les tables de routage, les groupes de sécurité et les ACL réseau autorisent le trafic à travers le cluster ENI entre le plan de contrôle et vos nœuds. |
Note
Seul le trafic répertorié dans ce tableau est affecté par votre configuration de sortie. EKS-managed le trafic du plan de contrôle (tel que les communications avec etcd, CloudWatch Logs et les services EKS internes) continue sur le chemin réseau AWS géré et n'est pas affecté par la configuration de votre VPC.
Créez un cluster avec une sortie routée par le client
Vous pouvez spécifier le mode de sortie du plan de contrôle lorsque vous créez un nouveau cluster.
Exemple
Vous pouvez utiliser ipFamily=ipv6 pour les clusters IPv6. Lorsque vous utilisez le CUSTOMER_ROUTED mode IPv6 avec, assurez-vous que vos sous-réseaux disposent d'une passerelle Internet de sortie uniquement pour le trafic IPv6, en plus d'une passerelle NAT pour le trafic IPv4.
Exemple
- Console de gestion AWS
-
-
Ouvrez la console Amazon EKS
. -
Sélectionnez Add cluster (Ajouter un cluster), puis Create (Créer).
-
Sur la page Mise en réseau, pour Control plane Outress, sélectionnez Customer routed.
-
Terminez la configuration de cluster restante et choisissez Create.
-
Pour AWS CloudFormation, ControlPlaneEgressMode: CUSTOMER_ROUTED installez-vousResourcesVpcConfig. Le support Terraform pour ce champ sera disponible dans une future version du AWS fournisseur.
Note
Le passage à CUSTOMER_ROUTED est une opération unidirectionnelle. Une fois que vous avez activé la sortie routée par le client sur un cluster, vous ne pouvez pas revenir à. AWS_MANAGED
Mise à jour d’un cluster existant
Vous pouvez modifier le mode de sortie du plan de contrôle sur un cluster existant à l'aide de la update-cluster-config commande.
aws eks update-cluster-config \ --name my-cluster \ --resources-vpc-config "controlPlaneEgressMode=CUSTOMER_ROUTED" \ --region region-code
Surveillez l'état de la mise à jour :
aws eks describe-update \ --name my-cluster \ --update-id update-id \ --region region-code
La mise à jour est terminée lorsque le statut s'afficheSuccessful. Le type de mise à jour estControlPlaneEgressUpdate. La mise à jour est généralement terminée dans les 10 minutes.
Important
Le passage à CUSTOMER_ROUTED est une opération unidirectionnelle. Une fois que vous avez activé la sortie routée par le client sur un cluster, vous ne pouvez pas revenir à. AWS_MANAGED
Avant de changer, vérifiez que votre VPC répond aux exigences de. Conditions préalables Si le plan de contrôle perd la connectivité aux points de terminaison requis après la mise à jour, les opérations telles que l'admission, les appels webhook et l'authentification OIDC peuvent échouer.
Considérations relatives à IPv6
Si vous exécutez un cluster IPv6 avec une sortie routée par le client, vous devez configurer les chemins de sortie IPv4 et IPv6.
Lors de l'exécution d'un cluster IPv6 (ipFamily=ipv6) avec CUSTOMER_ROUTED sortie :
-
Les ENI du plan de contrôle se voient attribuer à la fois des adresses IPv4 et IPv6.
-
Vous devez configurer les chemins de sortie IPv4 et IPv6 :
-
IPv4 : une route par défaut (
0.0.0.0/0) vers votre périphérique de sortie (par exemple, une passerelle NAT). -
IPv6 :
::/0route vers un périphérique de sortie IPv6 (par exemple, une passerelle Internet de sortie uniquement).
-
-
Les groupes de sécurité et les NACL doivent autoriser le trafic sur les deux versions IP.
-
Si votre fournisseur OIDC ou vos points de terminaison Webhook le sont IPv4-only, assurez-vous que le NAT IPv4 est fonctionnel.
Considérations
Gardez les points suivants à l'esprit lorsque vous utilisez une sortie du plan de contrôle acheminée par le client :
-
Votre responsabilité : En
CUSTOMER_ROUTEDmode, vous êtes propriétaire du chemin réseau entre le plan de contrôle et vos points de terminaison externes. Si ce chemin s'interrompt, les opérations du plan de contrôle qui en dépendent (telles que les appels webhook d'admission et l'authentification OIDC) peuvent échouer tant que vous n'avez pas rétabli la connectivité. -
VPC-internal le trafic n'est pas affecté : le trafic entre le plan de contrôle et vos nœuds (par exemple, l'API kubelet sur le port 10250) via le cluster ENI ne dépend pas de votre périphérique de sortie.
-
Mode automatique EKS : le routage de sortie du plan de contrôle fonctionne de la même manière sur les clusters en mode standard et automatique, car l'architecture du plan de contrôle est identique.
-
Capacités EKS : les fonctionnalités EKS (telles que ArgoCD, ACK et KRO) s'exécutent dans une infrastructure gérée distincte AWS . Le trafic provenant des contrôleurs EKS Capabilities n'est pas acheminé via votre VPC par cette fonctionnalité.
-
Observabilité : si vous activez les journaux de flux VPC sur les sous-réseaux de votre VPC ou de cluster, vous pouvez observer le trafic sortant qui passe par votre VPC. Cela inclut les appels aux points de terminaison Webhook et OIDC. Si les journaux de flux VPC ne sont pas activés, ce trafic n'est pas enregistré.
Clé de condition IAM
Amazon EKS prend en charge la clé de eks:controlPlaneEgressMode condition. Vous pouvez utiliser cette clé dans les politiques IAM ou les politiques de contrôle des services (SCP) pour contrôler le mode de sortie que les appelants peuvent spécifier lorsqu'ils créent ou mettent à jour des clusters.
La clé de condition s'applique aux actions suivantes :
-
eks:CreateCluster -
eks:UpdateClusterConfig
Par exemple, le SCP suivant refuse la création de clusters et les mises à jour de configuration sauf si l'appelant le spécifie : CUSTOMER_ROUTED
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireCustomerRoutedControlPlane", "Effect": "Deny", "Action": [ "eks:CreateCluster", "eks:UpdateClusterConfig" ], "Resource": "*", "Condition": { "StringNotEquals": { "eks:controlPlaneEgressMode": "CUSTOMER_ROUTED" } } } ] }
Utilisez cette politique pour faire en sorte que tous les clusters nouveaux et mis à jour de votre organisation utilisent le mode de CUSTOMER_ROUTED sortie.
Configuration du fournisseur OIDC
Si votre cluster utilise un fournisseur d'identité OIDC, le plan de contrôle doit pouvoir atteindre le point de terminaison de découverte OIDC via HTTPS (port 443). Cela s'applique aux rôles IAM pour les comptes de service ou à un fournisseur d'identité OIDC que vous associez pour l'authentification du cluster. Il n'y a aucun OIDC-specific paramètre ; il utilise le même chemin de sortie que celui que vous avez configuré dans Prérequis. Pour l'autoriser :
-
Vérifiez que les sous-réseaux du plan de contrôle ont une route qui couvre le point de terminaison OIDC (généralement une route par défaut vers votre périphérique de sortie, telle qu'une passerelle NAT).
-
Vérifiez que le groupe de sécurité du cluster autorise le TCP 443 sortant.
-
Vérifiez que les NACL du sous-réseau autorisent le trafic TCP 443 sortant et le trafic de retour éphémère entrant (ports 1024 à 65535).
Le point final dépend de votre fournisseur :
-
Fournisseur OIDC Amazon EKS (par défaut) :
oidc.eks.region-code.amazonaws.com -
Fournisseur OIDC personnalisé : URL de l'émetteur que vous avez configurée.
Si l'authentification OIDC échoue, voir Le fournisseur OIDC est inaccessible les étapes de résolution des problèmes.
Vérifiez la connectivité
Après avoir configuré la CUSTOMER_ROUTED sortie, vérifiez que le plan de contrôle peut atteindre les ressources de votre VPC :
-
Vérifiez le mode de sortie actuel : vérifiez que le cluster utilise le mode attendu.
aws eks describe-cluster --name my-cluster \ --query "cluster.resourcesVpcConfig.controlPlaneEgressMode" \ --region region-code -
Vérifier l'état du cluster : le cluster doit être en
ACTIVEétat.aws eks describe-cluster --name my-cluster --query "cluster.status" --region region-code -
Testez la connectivité du webhook : si vous avez configuré des webhooks d'admission, créez une ressource qui déclenche le webhook et confirmez son succès.
-
Vérifiez l'enregistrement du nœud : lancez un nœud et confirmez qu'il rejoint correctement le cluster.
kubectl get nodes -
Vérifiez OIDC : si vous utilisez des rôles IAM pour les comptes de service (IRSA), vérifiez que les pods peuvent assumer leurs rôles IAM.
Pour résoudre les problèmes courants, consultezRésolution des problèmes de sortie du plan de commande.
📝 Modifiez cette page sur GitHub