Déployez des clusters privés avec un accès Internet limité - Amazon EKS

Aidez à améliorer cette page

Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions aideront à améliorer notre guide de l'utilisateur pour tous.

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.

Déployez des clusters privés avec un accès Internet limité

Cette rubrique décrit comment déployer un EKS cluster Amazon déployé sur le AWS Cloud, mais ne disposant pas d'un accès Internet sortant. Si vous avez un cluster local activé AWS Outposts, consultezCréez des nœuds Amazon Linux sur AWS Outposts, au lieu de cette rubrique.

Si vous ne connaissez pas le EKS réseau Amazon, consultez Démystifier le réseau de clusters pour les nœuds de travail Amazon EKS. Si votre cluster n'a pas d'accès Internet sortant, il doit répondre aux exigences suivantes :

  • Votre cluster doit extraire des images d'un registre de conteneurs qui se trouve dans votreVPC. Vous pouvez créer un Amazon Elastic Container Registry dans votre VPC répertoire et y copier des images de conteneur pour que vos nœuds puissent les extraire. Pour de plus amples informations, veuillez consulter Copier une image de conteneur d'un référentiel vers un autre référentiel.

  • Votre cluster doit avoir un accès privé au point de terminaison activé. Ceci est nécessaire pour que les nœuds s'enregistrent auprès du point de terminaison du cluster. L'accès public au point de terminaison est facultatif. Pour de plus amples informations, veuillez consulter Contrôlez l'accès réseau au point de terminaison API du serveur du cluster.

  • Autogéré Linux and Windows les nœuds doivent inclure les arguments bootstrap suivants avant d'être lancés. Ces arguments contournent l'EKSintrospection d'Amazon et ne nécessitent pas d'accès à Amazon EKS API depuis le. VPC

    1. Déterminez la valeur du point de terminaison de votre cluster à l'aide de la commande suivante. Remplacez my-cluster avec le nom de votre cluster.

      aws eks describe-cluster --name my-cluster --query cluster.endpoint --output text

      L'exemple qui suit illustre un résultat.

      https://EXAMPLE108C897D9B2F1B21D5EXAMPLE.sk1.region-code.eks.amazonaws.com
    2. Déterminez la valeur de l'autorité de certification de votre cluster à l'aide de la commande suivante. Remplacez my-cluster avec le nom de votre cluster.

      aws eks describe-cluster --name my-cluster --query cluster.certificateAuthority --output text

      La sortie renvoyée est une longue chaîne.

    3. Remplacez cluster-endpoint et certificate-authority dans les commandes suivantes par les valeurs renvoyées dans la sortie des commandes précédentes. Pour plus d'informations sur la spécification des arguments d'amorçage lors du lancement de nœuds autogérés, consultez Créez des nœuds Amazon Linux autogérés et Créez une solution autogérée Microsoft Windows nœuds.

    • Dans Linux nœuds :

      --apiserver-endpoint cluster-endpoint --b64-cluster-ca certificate-authority

      Pour des arguments supplémentaires, consultez le script bootstrap sur GitHub.

    • Dans Windows nœuds :

      Note

      Si vous utilisez un service personnaliséCIDR, vous devez le spécifier à l'aide du -ServiceCIDR paramètre. Dans le cas contraire, la DNS résolution pour Pods dans le cluster échouera.

      -APIServerEndpoint cluster-endpoint -Base64ClusterCA certificate-authority

      Pour des arguments supplémentaires, consultez Paramètres de configuration du script d'amorçage.

  • Votre cluster aws-auth ConfigMap doit être créé à partir de votreVPC. Pour plus d'informations sur la création et l'ajout d'entrées dans la ConfigMap aws-auth, entrez eksctl create iamidentitymapping --help dans votre terminal. Si la ConfigMap n'existe pas sur votre serveur, eksctl la créera lorsque vous utiliserez la commande pour ajouter un mappage d'identité.

  • Pods configurés avec des IAMrôles pour les comptes de service obtiennent des informations d'identification à partir d'un API appel AWS Security Token Service (AWS STS). S'il n'y a pas d'accès Internet sortant, vous devez créer et utiliser un AWS STS VPC point de terminaison dans votreVPC. La plupart AWS v1 SDKs utilisent le point de AWS STS terminaison global par défaut (sts.amazonaws.com), qui n'utilise pas le AWS STS VPC point de terminaison. Pour utiliser le AWS STS VPC point de terminaison, vous devrez peut-être configurer votre point de terminaison SDK pour utiliser le point de AWS STS terminaison régional (sts.region-code.amazonaws.com). Pour de plus amples informations, veuillez consulter Configuration du AWS Security Token Service point de terminaison pour un compte de service.

  • Les VPC sous-réseaux de votre cluster doivent avoir un point de terminaison d'VPCinterface pour tous ceux Services AWS que vous Pods ont besoin d'accéder à. Pour plus d'informations, consultez la section Accès à un AWS service à l'aide d'un point de VPC terminaison d'interface. Certains services et points de terminaison couramment utilisés sont répertoriés dans le tableau suivant. Pour une liste complète des points de terminaison, consultez Services AWS qui s'intègrent à AWS PrivateLink dans le Guide AWS PrivateLink.

    Service Point de terminaison
    Amazon EC2 com.amazonaws.region-codeec2.
    Amazon Elastic Container Registry (pour extraire des images de conteneurs) com.amazonaws.region-code.ecr.api, com.amazonaws.region-code.ecr.dkr et com.amazonaws.region-codes3.
    Équilibreurs de charge Application Load Balancer et Network Load Balancer com.amazonaws.region-code. équilibrage de charge élastique
    AWS X-Ray com.amazonaws.region-code.xray
    Amazon CloudWatch Logs com.amazonaws.region-code.journaux
    AWS Security Token Service (obligatoire lors de l'utilisation de IAM rôles pour les comptes de service) com.amazonaws.region-code.sts
Considérations
  • Tous les nœuds autogérés doivent être déployés sur des sous-réseaux dotés des points de terminaison d'VPCinterface dont vous avez besoin. Si vous créez un groupe de nœuds gérés, le groupe de sécurité du point de terminaison de l'VPCinterface doit autoriser CIDR les sous-réseaux, ou vous devez ajouter le groupe de sécurité du nœud créé au groupe de sécurité du point de terminaison de l'VPCinterface.

  • Si vos recettes Pods utilisez les EFS volumes Amazon, puis avant de déployer leStockez un système de fichiers élastique avec Amazon EFS, le fichier kustomization.yaml du pilote doit être modifié pour que les images du conteneur utilisent la même chose que Région AWS le cluster Amazon. EKS

  • Vous pouvez utiliser le AWS Load Balancer Controllerpour déployer des équilibreurs de charge d' AWS application (ALB) et des équilibreurs de charge réseau sur votre cluster privé. Lors de son déploiement, vous devez utiliser les indicateurs de ligne de commande pour définir enable-shield, enable-waf et enable-wafv2 sur false. Certificate discovery (français non disponible) avec les noms d'hôtes des objets Ingress n'est pas prise en charge. Cela est dû au fait que le contrôleur doit atteindre AWS Certificate Manager, qui n'a pas de point de terminaison d'VPCinterface.

    Le contrôleur prend en charge les Network Load Balancers avec des cibles IP, qui sont nécessaires pour une utilisation avec Fargate. Pour plus d’informations, consultez Application d'itinéraire et HTTP trafic avec Application Load Balancers et Créer un équilibreur de charge de réseau.

  • Cluster Autoscaler est pris en charge. Lors du déploiement de Cluster Autoscaler Pods, assurez-vous que la ligne de commande inclut--aws-use-static-instance-list=true. Pour plus d'informations, voir Utiliser une liste d'instances statiques sur GitHub. Le nœud de travail VPC doit également inclure le AWS STS VPC point de terminaison et le point de VPC terminaison autoscaling.

  • Certains logiciels de conteneur utilisent des API appels permettant d'accéder au AWS Marketplace Metering Service pour surveiller l'utilisation. Les clusters privés n'autorisent pas ces appels, vous ne pouvez donc pas utiliser ces types de conteneurs dans les clusters privés.