Créez des EKS clusters Amazon locaux sur AWS Outposts pour une haute disponibilité - Amazon EKS

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.

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 contribueront à 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.

Créez des EKS clusters Amazon locaux sur AWS Outposts pour une haute disponibilité

Vous pouvez utiliser des clusters locaux pour exécuter l'intégralité de votre EKS cluster Amazon localement sur AWS Outposts. Cela permet de réduire le risque d'interruption des applications qui pourrait résulter de déconnexions temporaires du réseau au cloud. Ces déconnexions peuvent être causées par des coupures de fibre ou des événements météorologiques. Parce que l'ensemble Kubernetes le cluster s'exécute localement sur Outposts, les applications restent disponibles. Vous pouvez effectuer des opérations de cluster en cas de déconnexion du réseau au cloud. Pour de plus amples informations, veuillez consulter Préparez les EKS clusters Amazon locaux sur AWS Outposts pour les déconnexions réseau. Le schéma suivant illustre un déploiement de cluster local.

Cluster local Outpost

Les clusters locaux sont généralement disponibles pour une utilisation avec les racks Outposts.

AWS Régions prises en charge

Vous pouvez créer des clusters locaux dans les AWS régions suivantes : USA Est (Ohio), USA Est (Virginie du Nord), USA Ouest (Californie du Nord), USA Ouest (Oregon), Asie-Pacifique (Séoul), Asie-Pacifique (Singapour), Asie-Pacifique (Sydney), Asie-Pacifique (Tokyo), Canada (Centre), Europe (Francfort), Europe (Irlande), Europe (Londres), Moyen-Orient (Bahreïn), et en Amérique du Sud (São Paulo). Pour des informations détaillées sur les fonctions prises en charge, consultez Comparaison des options de déploiement.

Rubriques

    Création d'un cluster EKS local Amazon

    Vous pouvez créer un cluster local à l'aide des outils suivants décrits dans cette page :

    Vous pouvez également utiliser Amazon AWS CLIEKSAPIAWS SDKs, the AWS CloudFormationou Terraform pour créer des clusters sur les Outposts.

    eksctl

    Pour créer un cluster local avec eksctl

    1. Installez la version 0.199.0 ou une version ultérieure de l'outil de ligne de eksctl commande sur votre appareil ou AWS CloudShell. Pour installer ou mettre à jour eksctl, veuillez consulter Installation dans la documentation de eksctl.

    2. Copiez les contenus suivants sur votre appareil. Remplacez les valeurs suivantes, puis exécutez la commande modifiée pour créer le fichier outpost-control-plane.yaml :

      • region-codeRemplacez-le par la AWS région prise en charge dans laquelle vous souhaitez créer votre cluster.

      • Remplacez my-cluster par un nom pour votre cluster. Un nom ne peut contenir que des caractères alphanumériques (sensibles à la casse) et des traits d'union. Il doit commencer par un caractère alphanumérique et ne doit pas dépasser 100 caractères. Le nom doit être unique dans la AWS région et le AWS compte dans lesquels vous créez le cluster. Le nom doit être unique dans la AWS région et le AWS compte dans lesquels vous créez le cluster.

      • Remplacez vpc-ExampleID1 et subnet-ExampleID1 par celui IDs de votre sous-réseau VPC et de votre sous-réseau existants. Le sous-réseau VPC et doit répondre aux exigences de la section Create a VPC et les sous-réseaux pour les EKS clusters Amazon sur AWS Outposts.

      • Remplacez uniqueid par l'identifiant de votre avant-poste.

      • Remplacez m5.large par un type d'instance disponible sur votre Outpost. Avant de choisir un type d'instance, consultez Sélectionnez les types d'instances et les groupes de placement pour les EKS clusters Amazon sur AWS Outposts en fonction de considérations de capacité. Trois instances du plan de contrôle sont déployées. Vous ne pouvez pas modifier ce numéro.

        cat >outpost-control-plane.yaml <<EOF apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: "1.24" vpc: clusterEndpoints: privateAccess: true id: "vpc-vpc-ExampleID1" subnets: private: outpost-subnet-1: id: "subnet-subnet-ExampleID1" outpost: controlPlaneOutpostARN: arn:aws: outposts:region-code:111122223333:outpost/op-uniqueid controlPlaneInstanceType: m5.large EOF

        Pour une liste complète de toutes les options et valeurs par défaut disponibles, consultez AWS Outposts Support et schéma de fichier Config eksctl dans la documentation.

    3. Créez le cluster à l'aide du fichier de configuration que vous avez créé à l'étape précédente. eksctlcrée un sous-réseau VPC et un sous-réseau sur votre Outpost dans lequel déployer le cluster.

      eksctl create cluster -f outpost-control-plane.yaml

      L'approvisionnement de cluster dure plusieurs minutes. Pendant la création du cluster, plusieurs lignes de sortie apparaissent. La dernière ligne de sortie est similaire à celle de l'exemple suivant.

      [✓] EKS cluster "my-cluster" in "region-code" region is ready
      Astuce

      Pour afficher la plupart des options qui peuvent être spécifiées lors de la création d'un cluster avec eksctl, utilisez la commande eksctl create cluster --help. Pour consulter toutes les options disponibles, vous pouvez utiliser un fichier config. Pour plus d'informations, consultez Utilisation des fichiers de configuration et du schéma du fichier de configuration dans la documentation eksctl. Vous pouvez trouver des exemples de fichiers de configuration sur GitHub.

      La eksctl commande a automatiquement créé une entrée d'accès pour le IAM principal (utilisateur ou rôle) qui a créé le cluster et a accordé à l'administrateur IAM principal les autorisations pour Kubernetes objets du cluster. Si vous ne souhaitez pas que le créateur du cluster dispose d'un accès administrateur à Kubernetes objets du cluster, ajoutez le texte suivant au fichier de configuration précédent : bootstrapClusterCreatorAdminPermissions: false (au même niveau que metadatavpc, etoutpost). Si vous avez ajouté l'option, après la création du cluster, vous devez créer une entrée d'accès pour au moins un IAM principal, sinon aucun IAM principal n'aura accès à Kubernetes objets du cluster.

    AWS Management Console

    Pour créer votre cluster à l'aide du AWS Management Console

    1. Vous avez besoin d'un sous-réseau existant VPC répondant aux EKS exigences d'Amazon. Pour de plus amples informations, veuillez consulter Créez un VPC et des sous-réseaux pour les EKS clusters Amazon sur Outposts AWS.

    2. Si vous avez déjà un IAM rôle de cluster local, ou si vous comptez créer votre cluster aveceksctl, vous pouvez ignorer cette étape. Par défaut, eksctl crée un rôle pour vous.

      1. Exécutez la commande suivante pour créer un JSON fichier de politique de IAM confiance.

        cat >eks-local-cluster-role-trust-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF
      2. Créez le IAM rôle de EKS cluster Amazon. Pour créer un IAM rôle, le IAMprincipal qui crée le rôle doit se voir attribuer l'iam:CreateRoleaction (autorisation).

        aws iam create-role --role-name myAmazonEKSLocalClusterRole --assume-role-policy-document file://"eks-local-cluster-role-trust-policy.json"
      3. Associez la politique EKS gérée par Amazon nommée A mazonEKSLocal OutpostClusterPolicy au rôle. Pour associer une IAM politique à un IAMprincipal, le principal qui attache la politique doit se voir attribuer l'une des IAM actions suivantes (autorisations) : iam:AttachUserPolicy ouiam:AttachRolePolicy.

        aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy --role-name myAmazonEKSLocalClusterRole
    3. Ouvrez la EKSconsole Amazon.

    4. En haut de l'écran de la console, assurez-vous que vous avez sélectionné une AWS région prise en charge.

    5. Choisissez Add cluster (Ajouter un cluster), puis choisissez Create (Créer).

    6. Sur la page Configurer le cluster, saisissez ou sélectionnez les valeurs des champs suivants :

      • Kubernetes position du plan de contrôle — Choisissez AWS Outposts.

      • ID Outpost (ID d'Outpost) – Choisissez l'ID de l'Outpost sur lequel vous souhaitez créer votre plan de contrôle.

      • Instance type (Type d'instance) – Sélectionnez un type d'instance. Seuls les types d'instances disponibles dans votre Outpost sont affichés. Dans la liste déroulante, chaque type d'instance indique le nombre de nœuds pour lesquels le type d'instance est recommandé. Avant de choisir un type d'instance, consultez Sélectionnez les types d'instances et les groupes de placement pour les EKS clusters Amazon sur AWS Outposts en fonction de considérations de capacité. Tous les réplicas sont déployés à l'aide du même type d'instance. Vous ne pouvez pas modifier le type d'instance une fois votre cluster créé. Trois instances du plan de contrôle sont déployées. Vous ne pouvez pas modifier ce numéro.

      • Nom : nom de votre cluster. Il doit être unique dans votre AWS compte. Un nom ne peut contenir que des caractères alphanumériques (sensibles à la casse) et des traits d'union. Il doit commencer par un caractère alphanumérique et ne doit pas dépasser 100 caractères. Le nom doit être unique dans la AWS région et le AWS compte dans lesquels vous créez le cluster. Le nom doit être unique dans la AWS région et le AWS compte dans lesquels vous créez le cluster.

      • Kubernetes version — Choisissez le Kubernetes version que vous souhaitez utiliser pour votre cluster. Nous vous recommandons de sélectionner la dernière version, sauf si vous devez utiliser une version antérieure.

      • Rôle de service de cluster : choisissez le IAM rôle de EKS cluster Amazon que vous avez créé à l'étape précédente pour autoriser Kubernetes plan de contrôle pour gérer les AWS ressources.

      • Kubernetes accès administrateur du cluster  : si vous souhaitez que le IAM principal (rôle ou utilisateur) qui crée le cluster dispose d'un accès administrateur au Kubernetes objets du cluster, acceptez la valeur par défaut (autoriser). Amazon EKS crée une entrée d'accès pour le IAM principal et accorde les autorisations d'administrateur du cluster à cette entrée d'accès. Pour plus d'informations sur les entrées d'accès, consultez Octroi IAM accès des utilisateurs à Kubernetes avec entrées EKS d'accès.

        Si vous souhaitez qu'un IAM principal différent de celui qui crée le cluster dispose d'un accès administrateur à Kubernetes objets de cluster, choisissez l'option Interdire. Après la création du cluster, tout IAM principal IAM autorisé à créer des entrées d'accès peut ajouter des entrées d'accès pour tous IAM les principaux ayant besoin d'accéder à Kubernetes objets de cluster. Pour plus d'informations sur les IAM autorisations requises, consultez la section Actions définies par Amazon Elastic Kubernetes Service dans le Service Authorization Reference. Si vous choisissez l'option d'interdiction et que vous ne créez aucune entrée d'accès, aucun IAM principal n'aura accès au Kubernetes objets du cluster.

      • Identifications∘: (facultatif) ajoutez des identifications à votre cluster. Pour de plus amples informations, veuillez consulter Organisez les EKS ressources Amazon à l'aide de balises. Lorsque vous avez terminé d'utiliser cette page, choisissez Suivant.

    7. Sur la page Spécifier les réseaux sélectionnez des valeurs pour les champs suivants :

      • VPC— Choisissez un existantVPC. Le VPC doit disposer d'un nombre suffisant d'adresses IP disponibles pour le cluster, tous les nœuds et autres Kubernetes les ressources que vous souhaitez créer. Vous VPC devez satisfaire aux VPCexigences et aux considérations.

      • Sous-réseaux — Par défaut, tous les sous-réseaux disponibles dans le champ VPC spécifié dans le champ précédent sont présélectionnés. Les sous-réseaux que vous choisissez doivent répondre aux exigences de la section Exigences et considérations relatives aux sous-réseaux.

      • Groupes de sécurité — (Facultatif) Spécifiez un ou plusieurs groupes de sécurité que vous souhaitez qu'Amazon EKS associe aux interfaces réseau qu'il crée. Amazon crée EKS automatiquement un groupe de sécurité qui permet la communication entre votre cluster et votreVPC. Amazon EKS associe ce groupe de sécurité, ainsi que celui que vous choisissez, aux interfaces réseau qu'il crée. Pour plus d'informations sur le groupe de sécurité du cluster EKS créé par Amazon, consultezAfficher les exigences relatives aux groupes EKS de sécurité Amazon pour les clusters. Vous pouvez modifier les règles du groupe de sécurité du cluster EKS créé par Amazon. Si vous choisissez d'ajouter vos propres groupes de sécurité, vous ne pouvez pas modifier ceux que vous choisissez après la création du cluster. Pour que les hôtes sur site puissent communiquer avec le point de terminaison du cluster, vous devez autoriser le trafic entrant provenant du groupe de sécurité du cluster. Pour les clusters qui ne disposent pas de connexion Internet d'entrée et de sortie (également appelés clusters privés), vous devez effectuer l'une des opérations suivantes :

        • Ajoutez le groupe de sécurité associé aux VPC points de terminaison requis. Pour plus d'informations sur les points de terminaison requis, voir Utilisation des points de VPC terminaison de l'interface la section Accès aux AWS services par sous-réseau.

        • Modifiez le groupe de sécurité EKS créé par Amazon pour autoriser le trafic provenant du groupe de sécurité associé aux VPC points de terminaison. Lorsque vous avez terminé d'utiliser cette page, choisissez Suivant.

    8. Sur la page Configurer l'observabilité, vous pouvez éventuellement choisir les options de Métriques et de Journalisation du plan de contrôle que vous voulez activer. Par défaut, chaque type de journal est désactivé.

    9. Sur la page Vérifier et créer, passez en revue les informations que vous avez saisies ou sélectionnées sur les pages précédentes. Si vous devez apporter des modifications, choisissez Modifier. Lorsque vous êtes satisfait, choisissez Create. Le champ Status s'affiche CREATINGpendant que le cluster est provisionné.

      L'approvisionnement de cluster dure plusieurs minutes.

    Afficher votre cluster EKS local Amazon

    1. Une fois votre cluster créé, vous pouvez consulter les instances du plan EC2 de contrôle Amazon qui ont été créées.

      aws ec2 describe-instances --query 'Reservations[*].Instances[*].{Name:Tags[?Key==`Name`]|[0].Value}' | grep my-cluster-control-plane

      L'exemple qui suit illustre un résultat.

      "Name": "my-cluster-control-plane-id1" "Name": "my-cluster-control-plane-id2" "Name": "my-cluster-control-plane-id3"

      Chaque instance est rejetée avec node-role.eks-local.amazonaws.com/control-plane pour qu'aucune charge de travail ne soit planifiée sur les instances du plan de contrôle. Pour plus d'informations sur les teintures, voir Teintes et tolérances dans le Kubernetes . Amazon surveille EKS en permanence l'état des clusters locaux. Nous effectuons des actions de gestion automatiques, telles que des correctifs de sécurité et la réparation des instances défectueuses. Lorsque des clusters locaux sont déconnectés du cloud, nous prenons des mesures pour nous assurer que le cluster retrouve un état sain lors de la reconnexion.

    2. Si vous avez créé votre cluster à l'aide de eksctl, vous pouvez sauter cette étape. eksctl complète cette étape pour vous. Activez kubectl pour communiquer avec votre cluster en ajoutant un nouveau contexte au fichier kubectl config. Pour savoir comment créer et mettre à jour le fichier, consultez Connect kubectl à un EKS cluster en créant un fichier kubeconfig.

      aws eks update-kubeconfig --region region-code --name my-cluster

      L'exemple qui suit illustre un résultat.

      Added new context arn:aws: eks:region-code:111122223333:cluster/my-cluster to /home/username/.kube/config
    3. Pour vous connecter à votre cluster local Kubernetes APIserveur, avez accès à la passerelle locale pour le sous-réseau ou connectez-vous depuis leVPC. Pour plus d'informations sur la connexion d'un rack Outpost à votre réseau local, consultez Comment fonctionnent les passerelles locales pour les racks dans le Guide de l'utilisateur d' AWS Outposts. Si vous utilisez le VPC routage direct et que le sous-réseau Outpost dispose d'une route vers votre passerelle locale, les adresses IP privées du Kubernetes les instances du plan de contrôle sont automatiquement diffusées sur votre réseau local. Le cluster local Kubernetes APIle point de terminaison du serveur est hébergé sur Amazon Route 53 (Route 53). Le point API de terminaison du service peut être résolu par DNS les serveurs publics vers les adresses IP privées API des serveurs Kubernetes.

      Clusters locaux » Kubernetes les instances du plan de contrôle sont configurées avec des interfaces réseau élastiques statiques avec des adresses IP privées fixes qui ne changent pas tout au long du cycle de vie du cluster. Des machines qui interagissent avec Kubernetes APIle serveur peut ne pas être connecté à Route 53 lors des déconnexions réseau. Si tel est le cas, nous recommandons de configurer /etc/hosts avec les adresses IP privées statiques pour la poursuite des opérations. Nous vous recommandons également de configurer des DNS serveurs locaux et de les connecter à votre Outpost. Pour plus d'informations, consultez la documentation AWS des Outposts. Exécutez la commande suivante pour confirmer que la communication est établie avec votre cluster.

      kubectl get svc

      L'exemple qui suit illustre un résultat.

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 28h
    4. (Facultatif) Testez l'authentification auprès de votre cluster local lorsqu'il est déconnecté du AWS cloud. Pour obtenir des instructions, consultez Préparez les EKS clusters Amazon locaux sur AWS Outposts pour les déconnexions réseau.

    Ressources internes

    Amazon EKS crée les ressources suivantes sur votre cluster. Les ressources sont destinées à un usage EKS interne d'Amazon. Pour le bon fonctionnement de votre cluster, ne modifiez ni ne modifiez ces ressources.

    • Les modules miroir suivants :

      • aws-iam-authenticator-node-hostname

      • eks-certificates-controller-node-hostname

      • etcd-node-hostname

      • kube-apiserver-node-hostname

      • kube-controller-manager-node-hostname

      • kube-scheduler-node-hostname

    • Les modules complémentaires autogérés suivants :

      • kube-system/coredns

      • kube-system/kube-proxy(non créé tant que vous n'avez pas ajouté votre premier nœud)

      • kube-system/aws-node (non créé tant que vous n'avez pas ajouté votre premier nœud). Les clusters locaux utilisent le Amazon VPC CNI plugin for Kubernetes plugin pour la mise en réseau de clusters. Ne modifiez pas la configuration des instances du plan de contrôle (pods nommés aws-node-controlplane-*). Il existe des variables de configuration que vous pouvez utiliser pour modifier la valeur par défaut lorsque le plugin crée de nouvelles interfaces réseau. Pour plus d'informations, consultez la documentation sur GitHub.

    • Les services suivants :

      • default/kubernetes

      • kube-system/kube-dns

    • Une politique PodSecurityPolicy nommée eks.system

    • Un rôle ClusterRole nommé eks:system:podsecuritypolicy

    • Un rôle ClusterRoleBinding nommé eks:system

    • Un PodSecurityPolicy par défaut

    • Outre le groupe de sécurité du cluster, Amazon EKS crée un groupe de sécurité nommé dans votre AWS compteeks-local-internal-do-not-use-or-edit-cluster-name-uniqueid . Ce groupe de sécurité permet au trafic de circuler librement entre Kubernetes composants exécutés sur les instances du plan de contrôle.

    Étapes suivantes recommandées :