Aidez à améliorer cette page
Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.
Préparer la mise en réseau pour les nœuds hybrides
Cette rubrique fournit une vue d’ensemble de la configuration réseau que vous devez avoir configurée avant de créer votre cluster Amazon EKS et d’y attacher des nœuds hybrides. Ce guide suppose que vous remplissez les conditions préalables requises pour la connectivité réseau hybride à l’aide d’un VPN site à site AWS, de Direct Connect AWS ou de votre propre solution VPN.
Configuration réseau sur site
Configuration réseau minimale requise
Pour une expérience optimale, nous vous recommandons de disposer d’une connexion réseau fiable d’au moins 100 Mbit/s et d’une latence aller-retour maximale de 200 ms pour la connexion des nœuds hybrides à la région AWS. Il s’agit d’une recommandation générale qui s’applique à la plupart des cas d’utilisation, mais qui ne constitue pas une exigence stricte. Les exigences en matière de bande passante et de latence peuvent varier en fonction du nombre de nœuds hybrides et des caractéristiques de votre charge de travail, telles que la taille de l’image de l’application, l’élasticité de l’application, les configurations de surveillance et de journalisation, ainsi que les dépendances de l’application pour accéder aux données stockées dans d’autres services AWS. Nous vous recommandons d’effectuer des tests avec vos propres applications et environnements avant le déploiement en production afin de vérifier que votre configuration réseau répond aux exigences de vos charges de travail.
CIDR des nœuds et pods sur site
Identifiez les CIDR de nœuds et de pods que vous utiliserez pour vos nœuds hybrides et les charges de travail qui s’exécutent sur ceux-ci. Le CIDR du nœud est attribué à partir de votre réseau local et le CIDR du pod est attribué à partir de votre interface réseau de conteneur (CNI) si vous utilisez un réseau superposé pour votre CNI. Vous transmettez vos CIDR de nœuds sur site et vos CIDR de pods en tant qu’entrées lorsque vous créez votre cluster EKS à l’aide des champs RemoteNodeNetwork et RemotePodNetwork. Les CIDR de vos nœuds sur site doivent être routables sur votre réseau sur site. Consultez la section suivante pour obtenir des informations sur la routabilité CIDR du pod sur site.
Les blocs CIDR des nœuds et pods sur site doivent répondre aux exigences suivantes :
-
Se situer dans l’une des plages RFC-1918
IPv4suivantes :10.0.0.0/8,172.16.0.0/12, ou192.168.0.0/16. -
Ne pas se chevaucher entre eux, le CIDR VPC pour votre cluster EKS ou votre CIDR de service Kubernetes
IPv4.
Routage du réseau de pods sur site
Lorsque vous utilisez des nœuds hybrides EKS, nous vous recommandons généralement de rendre vos CIDR de pods sur site routables sur votre réseau local afin de permettre une communication de cluster complète et toutes les fonctionnalités entre les environnements cloud et sur site.
Réseaux de pods routables
Si vous êtes en mesure de rendre votre réseau de pods routable sur votre réseau local, suivez les instructions ci-dessous.
-
Configurez le champ
RemotePodNetworkpour votre cluster EKS avec votre CIDR de pod sur site, vos tables de routage VPC avec votre CIDR de pod sur site et votre groupe de sécurité de cluster EKS avec votre CIDR de pod sur site. -
Il existe plusieurs techniques que vous pouvez utiliser pour rendre votre pod CIDR sur site routable sur votre réseau sur site, notamment le protocole de passerelle frontière (BGP), les routes statiques ou d’autres solutions de routage personnalisées. BGP est la solution recommandée, car elle est plus évolutive et plus facile à gérer que les autres solutions qui nécessitent une configuration personnalisée ou manuelle des routes. AWS prend en charge les capacités BGP de Cilium et Calico pour la publicité des CIDR de pod. Pour plus d’informations, consultez Configurer CNI pour les nœuds hybrides et CIDR de pods distants routables.
-
Les webhooks peuvent s’exécuter sur des nœuds hybrides, car le plan de contrôle EKS est capable de communiquer avec les adresses IP des pods attribuées aux webhooks.
-
Les charges de travail exécutées sur les nœuds cloud peuvent communiquer directement avec les charges de travail exécutées sur les nœuds hybrides du même cluster EKS.
-
D’autres services AWS, tels que les Application Load Balancers AWS et le service géré Amazon pour Prometheus, sont capables de communiquer avec les charges de travail exécutées sur des nœuds hybrides afin d’équilibrer le trafic réseau et de récupérer les métriques des pods.
Réseaux de pods non routables
Si vous ne parvenez pas à rendre vos réseaux de pods routables sur votre réseau local, suivez les instructions ci-dessous.
-
Les webhooks ne peuvent pas s’exécuter sur des nœuds hybrides, car ils nécessitent une connectivité entre le plan de contrôle EKS et les adresses IP des pods attribuées aux webhooks. Dans ce cas, nous vous recommandons d’exécuter les webhooks sur les nœuds cloud du même cluster EKS que vos nœuds hybrides. Pour plus d’informations, consultez Configurer les webhooks pour les nœuds hybrides.
-
Les charges de travail exécutées sur des nœuds cloud ne peuvent pas communiquer directement avec les charges de travail exécutées sur des nœuds hybrides lorsque vous utilisez VPC CNI pour les nœuds cloud et Cilium ou Calico pour les nœuds hybrides.
-
Utilisez la distribution du trafic de service pour maintenir le trafic local dans la zone d’où il provient. Pour plus d’informations sur la distribution du trafic de service, voir Configuration de la distribution du trafic de service.
-
Configurez votre CNI pour utiliser le masquage de sortie ou la traduction d’adresses réseau (NAT) pour le trafic des pods lorsqu’il quitte vos hôtes sur site. Cette fonctionnalité est activée par défaut dans Cilium. Calico a besoin que
natOutgoingsoit défini surtrue. -
D’autres services AWS, tels que les Application Load Balancers AWS et le service géré Amazon pour Prometheus, ne peuvent pas communiquer avec les charges de travail exécutées sur des nœuds hybrides.
Accès requis pendant l’installation et la mise à niveau des nœuds hybrides
Vous devez avoir accès aux domaines suivants pendant le processus d’installation où vous installez les dépendances des nœuds hybrides sur vos hôtes. Ce processus peut être effectué une seule fois lors de la création des images de votre système d’exploitation ou sur chaque hôte au moment de l’exécution. Cela inclut l’installation initiale et la mise à niveau de la version Kubernetes de vos nœuds hybrides.
Certains paquets sont installés à l’aide du gestionnaire de paquets par défaut du système d’exploitation. Pour AL2023 et RHEL, la commande yum sert à installer containerd, ca-certificates. iptables et amazon-ssm-agent. Pour Ubuntu, apt est utilisé pour installer containerd, ca-certificates, et iptables, et snap sert à installer amazon-ssm-agent.
| Composant | URL | Protocole | Port |
|---|---|---|---|
|
Artefacts du nœud EKS (S3) |
https://hybrid-assets.eks.amazonaws.com |
HTTPS |
443 |
|
https://eks. |
HTTPS |
443 |
|
|
https://api.ecr. |
HTTPS |
443 |
|
|
Points de terminaison EKS ECR |
Voir Affichage des registres d’images conteneurs Amazon pour les modules complémentaires Amazon EKS pour les points terminaux régionaux. |
HTTPS |
443 |
|
Point de terminaison binaire SSM 1 |
https://amazon-ssm- |
HTTPS |
443 |
|
https://ssm. |
HTTPS |
443 |
|
|
Point de terminaison binaire IAM Anywhere 2 |
https://rolesanywhere.amazonaws.com |
HTTPS |
443 |
|
Point de terminaison du service IAM Anywhere 2 |
https://rolesanywhere. |
HTTPS |
443 |
|
Points de terminaison du gestionnaire de paquets du système d’exploitation |
Les points de terminaison du référentiel de paquets sont spécifiques au système d’exploitation et peuvent varier selon la région géographique. |
HTTPS |
443 |
Note
1 L’accès aux points de terminaison SSM AWS n’est nécessaire que si vous utilisez des activations hybrides SSM AWS pour votre fournisseur d’informations d’identification IAM sur site.
2 L’accès aux points de terminaison IAM AWS n’est requis que si vous utilisez Rôles Anywhere IAM AWS pour votre fournisseur d’informations d’identification IAM sur site.
Accès requis pour les opérations de cluster en cours
L’accès réseau suivant pour votre pare-feu local est nécessaire pour le fonctionnement continu du cluster.
Important
En fonction du CNI que vous avez choisi, vous devez configurer des règles d’accès réseau supplémentaires pour les ports CNI. Pour plus d’informations, consultez la documentation Cilium
| Type | Protocole | Direction | Port | Source | Destination | Utilisation |
|---|---|---|---|---|---|---|
|
HTTPS |
TCP |
Sortant |
443 |
CIDR des nœuds distants |
IP du cluster EKS 1 |
kubelet vers le serveur API Kubernetes |
|
HTTPS |
TCP |
Sortant |
443 |
CIDR de pod distant(s) |
IP du cluster EKS 1 |
Pod vers serveur API Kubernetes |
|
HTTPS |
TCP |
Sortant |
443 |
CIDR des nœuds distants |
Actualisation des informations d’identification des activations hybrides SSM et pulsations SSM toutes les 5 minutes |
|
|
HTTPS |
TCP |
Sortant |
443 |
CIDR des nœuds distants |
Actualisation des informations d’identification Rôles Anywhere IAM |
|
|
HTTPS |
TCP |
Sortant |
443 |
CIDR de pod distant(s) |
Pod vers point de terminaison STS, requis uniquement pour IRSA |
|
|
HTTPS |
TCP |
Sortant |
443 |
CIDR des nœuds distants |
Point de terminaison du service d’authentification Amazon EKS |
Nœud vers le point de terminaison d’authentification Amazon EKS, requis uniquement pour l’identité du pod Amazon EKS |
|
HTTPS |
TCP |
Entrant |
10250 |
IP du cluster EKS 1 |
CIDR des nœuds distants |
Serveur API Kubernetes vers kubelet |
|
HTTPS |
TCP |
Entrant |
Ports Webhook |
IP du cluster EKS 1 |
CIDR de pod distant(s) |
Serveur API Kubernetes vers webhooks |
|
HTTPS |
TCP, UDP |
Entrant, sortant |
53 |
CIDR de pod distant(s) |
CIDR de pod distant(s) |
Pod vers CoreDNS. Si vous exécutez au moins un réplica de CoreDNS dans le cloud, vous devez autoriser le trafic DNS vers le VPC où CoreDNS est exécuté. |
|
Défini par l'utilisateur |
Défini par l'utilisateur |
Entrant, sortant |
Ports d’applications |
CIDR de pod distant(s) |
CIDR de pod distant(s) |
Pod à pod |
Note
1 Les adresses IP du cluster EKS. Consultez la section suivante sur les interfaces réseau Elastic Amazon EKS.
Interfaces réseau Amazon EKS
Amazon EKS associe des interfaces réseau aux sous-réseaux du VPC que vous transmettez lors de la création du cluster afin de permettre la communication entre le plan de contrôle EKS et votre VPC. Les interfaces réseau créées par Amazon EKS sont accessibles après la création du cluster dans la console Amazon EC2 ou via l’interface CLI AWS. Les interfaces réseau d’origine sont supprimées et de nouvelles interfaces réseau sont créées lorsque des modifications sont appliquées à votre cluster EKS, telles que les mises à niveau de version Kubernetes. Vous pouvez restreindre la plage d’adresses IP pour les interfaces réseau Amazon EKS en utilisant des tailles de sous-réseaux limitées pour les sous-réseaux que vous transmettez lors de la création du cluster, ce qui facilite la configuration de votre pare-feu local afin d’autoriser la connectivité entrante/sortante vers cet ensemble connu et limité d’adresses IP. Pour contrôler les sous-réseaux dans lesquels les interfaces réseau sont créées, vous pouvez limiter le nombre de sous-réseaux que vous spécifiez lors de la création d’un cluster ou mettre à jour les sous-réseaux après avoir créé le cluster.
Les interfaces réseau fournies par Amazon EKS ont une description au format Amazon EKS . Consultez l’exemple ci-dessous pour connaître la commande CLI AWS que vous pouvez utiliser pour trouver les adresses IP des interfaces réseau provisionnées par Amazon EKS. Remplacez par l’ID du VPC que vous avez transmis lors de la création du cluster par your-cluster-name
VPC_ID.
aws ec2 describe-network-interfaces \ --query 'NetworkInterfaces[?(VpcId ==VPC_ID&& contains(Description,Amazon EKS))].PrivateIpAddress'
Configuration du VPC et du sous-réseau AWS
Les exigences existantes en matière de VPC et de sous-réseau pour Amazon EKS s’appliquent aux clusters avec des nœuds hybrides. De plus, votre CIDR VPC ne peut pas chevaucher les CIDR de vos nœuds et pods sur site. Vous devez configurer les routes dans votre table de routage VPC pour votre nœud sur site et, éventuellement, les CIDR des pods. Ces routes doivent être configurées pour acheminer le trafic vers la passerelle que vous utilisez pour votre connectivité réseau hybride, qui est généralement une passerelle privée virtuelle (VGW) ou une passerelle de transit (TGW). Si vous utilisez TGW ou VGW pour connecter votre VPC à votre environnement sur site, vous devez créer une connexion TGW ou VGW pour votre VPC. Votre VPC doit prend en charge le nom d'hôte DNS et la résolution DNS.
Les étapes suivantes utilisent l’interface CLI AWS. Vous pouvez également créer ces ressources dans le AWS Management Console ou avec d’autres interfaces telles que CloudFormation AWS, CDK AWS ou Terraform.
Étape 1 : créer un VPC
-
Exécutez la commande suivante pour créer un VPC. Remplacer
VPC_CIDRpar une plage CIDR RFC-1918 (privée)IPv4ou non RFC-1918 (publique) (par exemple10.0.0.0/16). Remarque : la résolution DNS, qui est une exigence EKS, est activée par défaut pour le VPC.aws ec2 create-vpc --cidr-blockVPC_CIDR -
Activez les noms d’hôte DNS pour votre VPC. Remarque : la résolution DNS est activée par défaut pour le VPC. Remplacez
VPC_IDpar l’ID du VPC que vous avez créé à l’étape précédente.aws ec2 modify-vpc-attribute --vpc-idVPC_ID--enable-dns-hostnames
Étape 2 : créer des sous-réseaux
Créez au moins 2 sous-réseaux. Amazon EKS utilise ces sous-réseaux pour les interfaces réseau du cluster. Pour plus d’informations, consultez la section Exigences et considérations relatives aux sous-réseaux.
-
Vous pouvez trouver les zones de disponibilité d’une région AWS à l’aide de la commande suivante. Remplacez
us-west-2par votre région.aws ec2 describe-availability-zones \ --query 'AvailabilityZones[?(RegionName ==us-west-2)].ZoneName' -
Créez un sous-réseau. Remplacez
VPC_IDpar l’ID du VPC. RemplacezSUBNET_CIDRpar le bloc CIDR de votre sous-réseau (par exemple 10.0.1.0/24). RemplacezAZpar la zone de disponibilité dans laquelle le sous-réseau sera créé (par exemple us-west-2a). Les sous-réseaux que vous créez doivent se trouver dans au moins deux zones de disponibilité différentes.aws ec2 create-subnet \ --vpc-idVPC_ID\ --cidr-blockSUBNET_CIDR\ --availability-zoneAZ
(Facultatif) Étape 3 : connecter le VPC à la passerelle de transit (TGW) Amazon VPC ou à la passerelle privée virtuelle (VGW) AWS Direct Connect
Si vous utilisez un TGW ou un VGW, connectez votre VPC au TGW ou au VGW. Pour plus d’informations, consultez la section Pièces jointes Amazon VPC dans les passerelles de transit Amazon VPC ou Associations de passerelles privées virtuelles Direct Connect AWS.
Passerelle de transit
Exécutez la commande suivante pour connecter une passerelle Transit Gateway. Remplacez VPC_ID par l’ID du VPC. Remplacez SUBNET_ID1 et SUBNET_ID2 par les identifiants des sous-réseaux que vous avez créés à l’étape précédente. Remplacez TGW_ID par l’ID de votre TGW.
aws ec2 create-transit-gateway-vpc-attachment \ --vpc-idVPC_ID\ --subnet-idsSUBNET_ID1 SUBNET_ID2\ --transit-gateway-idTGW_ID
Passerelle privée virtuelle
Exécutez la commande suivante pour connecter une passerelle Transit Gateway. Remplacez VPN_ID par l’ID de votre VGW. Remplacez VPC_ID par l’ID du VPC.
aws ec2 attach-vpn-gateway \ --vpn-gateway-idVPN_ID\ --vpc-idVPC_ID
(Facultatif) Étape 4 : créer une table de routage
Vous pouvez modifier la table de routage principale pour le VPC ou créer une table de routage personnalisée. Les étapes suivantes permettent de créer une table de routage personnalisée avec les routes vers les CIDR des nœuds et des pods sur site. Pour plus d’informations, consultez Tables de routage de sous-réseau. Remplacez VPC_ID par l’ID du VPC.
aws ec2 create-route-table --vpc-idVPC_ID
Étape 5 : créer des routes pour les nœuds et les pods sur site
Créez des routes dans la table de routage pour chacun de vos nœuds distants sur site. Vous pouvez modifier la table de routage principale pour le VPC ou utiliser la table de routage personnalisée que vous avez créée à l’étape précédente.
Les exemples ci-dessous montrent comment créer des routes pour vos CIDR de nœuds et de pods sur site. Dans les exemples, une passerelle de transit (TGW) est utilisée pour connecter le VPC à l’environnement sur site. Si vous disposez de plusieurs CIDR de nœuds et de pods sur site, répétez les étapes pour chaque CIDR.
-
Si vous utilisez une passerelle Internet ou une passerelle privée virtuelle (VGW), remplacez
--transit-gateway-idpar--gateway-id. -
Remplacez
RT_IDpar l’ID de la table de routage que vous avez créée à l’étape précédente. -
Remplacez
REMOTE_NODE_CIDRpar la plage CIDR que vous utiliserez pour vos nœuds hybrides. -
Remplacez
REMOTE_POD_CIDRpar la plage CIDR que vous utiliserez pour les pods s’exécutant sur des nœuds hybrides. La plage CIDR du pod correspond à la configuration CNI (Container Networking Interface), qui utilise le plus souvent un réseau superposé sur site. Pour de plus amples informations, consultez Configurer CNI pour les nœuds hybrides. -
Remplacez
TGW_IDpar l’ID de votre TGW.
Réseau de nœuds distants
aws ec2 create-route \ --route-table-idRT_ID\ --destination-cidr-blockREMOTE_NODE_CIDR\ --transit-gateway-idTGW_ID
Réseau de pods distants
aws ec2 create-route \ --route-table-idRT_ID\ --destination-cidr-blockREMOTE_POD_CIDR\ --transit-gateway-idTGW_ID
(Facultatif) Étape 6 : associer les sous-réseaux à la table de routage
Si vous avez créé une table de routage personnalisée à l’étape précédente, associez chacun des sous-réseaux que vous avez créés à l’étape précédente à votre table de routage personnalisée. Si vous modifiez la table de routage principale du VPC, les sous-réseaux sont automatiquement associés à la table de routage principale du VPC et vous pouvez ignorer cette étape.
Exécutez la commande suivante pour chacun des sous-réseaux que vous avez créés lors des étapes précédentes. Remplacer RT_ID par la table de routage que vous avez créée à l’étape précédente. Remplacer SUBNET_ID par l’ID d’un sous-réseau.
aws ec2 associate-route-table --route-table-idRT_ID--subnet-idSUBNET_ID
Configuration du groupe de sécurité du cluster
L’accès suivant pour votre groupe de sécurité de cluster EKS est nécessaire pour le fonctionnement continu du cluster. Amazon EKS crée automatiquement les règles de groupe de sécurité entrantes requises pour les nœuds hybrides lorsque vous créez ou mettez à jour votre cluster avec des réseaux de nœuds distants et de pods configurés. Étant donné que les groupes de sécurité autorisent par défaut tout le trafic sortant, Amazon EKS ne modifie pas automatiquement les règles sortantes du groupe de sécurité du cluster pour les nœuds hybrides. Si vous souhaitez personnaliser le groupe de sécurité du cluster, vous pouvez limiter le trafic aux règles indiquées dans le tableau suivant.
| Type | Protocole | Direction | Port | Source | Destination | Utilisation |
|---|---|---|---|---|---|---|
|
HTTPS |
TCP |
Entrant |
443 |
CIDR des nœuds distants |
N/A |
Kubelet vers le serveur API Kubernetes |
|
HTTPS |
TCP |
Entrant |
443 |
CIDR de pod distant(s) |
N/A |
Pods nécessitant un accès au serveur API K8s lorsque le CNI n’utilise pas NAT pour le trafic des pods. |
|
HTTPS |
TCP |
Sortant |
10250 |
N/A |
CIDR des nœuds distants |
Serveur API Kubernetes vers Kubelet |
|
HTTPS |
TCP |
Sortant |
Ports Webhook |
N/A |
CIDR de pod distant(s) |
Serveur API Kubernetes vers webhook (si vous exécutez des webhooks sur des nœuds hybrides) |
Important
Limites des règles des groupes de sécurité : les groupes de sécurité Amazon EC2 ont un maximum de 60 règles entrantes par défaut. Les règles entrantes du groupe de sécurité peuvent ne pas s’appliquer si le groupe de sécurité de votre cluster approche cette limite. Dans ce cas, il peut être nécessaire d’ajouter manuellement les règles entrantes manquantes.
Responsabilité du nettoyage CIDR : si vous supprimez des réseaux de nœuds distants ou de pods des clusters EKS, EKS ne supprime pas automatiquement les règles de groupe de sécurité correspondantes. Vous êtes responsable de la suppression manuelle des réseaux de nœuds distants ou de pods inutilisés de vos règles de groupe de sécurité.
Pour plus d'informations sur le groupe de sécurité de cluster créé par Amazon EKS, consultez Voir les exigences relatives aux groupes de sécurité Amazon EKS pour les clusters.
(Facultatif) Configuration manuelle du groupe de sécurité
Si vous devez créer des groupes de sécurité supplémentaires ou modifier les règles créées automatiquement, vous pouvez utiliser les commandes suivantes comme référence. Par défaut, la commande ci-dessous crée un groupe de sécurité qui autorise tous les accès sortants. Vous pouvez restreindre l’accès sortant afin qu’il n’inclue que les règles ci-dessus. Si vous envisagez de limiter les règles sortantes, nous vous recommandons de tester minutieusement toutes vos applications et la connectivité des pods avant d’appliquer vos règles modifiées à un cluster de production.
-
Dans la première commande, remplacez
SG_NAMEpar le nom de votre groupe de sécurité. -
Dans la première commande, remplacez
VPC_IDpar l’ID du VPC que vous avez créé à l’étape précédente. -
Dans la deuxième commande, remplacez
SG_IDpar l’ID du groupe de sécurité que vous avez créé dans la première commande. -
Dans la deuxième commande, remplacez
REMOTE_NODE_CIDRetREMOTE_POD_CIDRpar les valeurs correspondant à vos nœuds hybrides et à votre réseau local.
aws ec2 create-security-group \ --group-nameSG_NAME\ --description "security group for hybrid nodes" \ --vpc-idVPC_ID
aws ec2 authorize-security-group-ingress \ --group-idSG_ID\ --ip-permissions '[{"IpProtocol": "tcp", "FromPort": 443, "ToPort": 443, "IpRanges": [{"CidrIp": "REMOTE_NODE_CIDR"}, {"CidrIp": "REMOTE_POD_CIDR"}]}]'