View a markdown version of this page

Implementación de un clúster local de Amazon EKS en AWS Outposts configurados con el almacén de instancias de EC2 - Amazon EKS

Ayude a mejorar esta página

Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.

Implementación de un clúster local de Amazon EKS en AWS Outposts configurados con el almacén de instancias de EC2

En este tema se proporcionan instrucciones para implementar un clúster de Amazon EKS local en un AWS Outpost configurado con un almacén de instancias de EC2.

nota

Si el Outpost está configurado con Amazon EBS en lugar del almacén de instancias de EC2, la arquitectura descrita en este tema no estará disponible para el Outpost. Los Outposts configurados con EBS continuarán utilizando la implementación de clústeres locales existente. Para obtener más información, consulte Implementación de un clúster de Amazon EKS en AWS Outposts.

Si le interesa crear un clúster local en un Outpost basado en EBS con la arquitectura de clústeres local actualizada, contacte con el equipo de cuentas de AWS.

importante

Requisitos previos

nota

Al crear un clúster local, la entidad principal de IAM que crea el clúster se agrega de forma permanente a la tabla de autorización de RBAC de Kubernetes como administrador con permisos system:masters. Asegúrese de no eliminar nunca esta entidad principal.

Creación de un clúster local

Puede crear un clúster local mediante la Consola de administración de AWS, la AWS CLI, la API de Amazon EKS o AWS CloudFormation.

Al crear el clúster local, tenga en cuenta lo siguiente:

AWS CLI

aws eks create-cluster \ --name my-cluster \ --role-arn arn:aws:iam::111122223333:role/myEKSClusterRole \ --kubernetes-version 1.36 \ --resources-vpc-config subnetIds=subnet-ExampleID1,endpointPrivateAccess=true,endpointPublicAccess=true \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}' \ --access-config authenticationMode=API_AND_CONFIG_MAP,bootstrapClusterCreatorAdminPermissions=true \ --outpost-config outpostArns=arn:aws:outposts:region-code:111122223333:outpost/op-uniqueid,controlPlaneInstanceType=m5.large,controlPlanePlacement={spreadLevel=host},etcdInstanceType=m5.large,etcdPlacement={spreadLevel=host}

Consola de administración de AWS

  1. Abra la consola de Amazon EKS.

  2. Elija Create cluster.

  3. En Ubicación del plano de control de Kubernetes, elija AWS Outposts.

  4. Configura lo siguiente:

    • Nombre: nombre para el clúster.

    • Versión de Kubernetes: versión que se utilizará.

    • Rol de servicio del clúster: rol de IAM con AmazonEKSClusterPolicy y AmazonEKSServicePolicy.

    • ID de Outpost: Outpost lógico en el que se implementará.

    • Tipo de instancia del plano de control: el tipo de instancia del servidor de la API, el planificador y el administrador de controladores de Kubernetes.

    • Tipo de instancia de etcd: tipo de instancia de etcd.

    • Nivel de distribución: host o rack para la ubicación de etcd y el plano de control.

  5. Configure la red: VPC, subredes y grupos de seguridad. Habilite el acceso a puntos de conexión privados.

  6. Configure la observabilidad: registro del plano de control.

  7. Revise y cree.

CreateClusterAPI

{ "name": "my-cluster", "roleArn": "arn:aws:iam::111122223333:role/myEKSClusterRole", "version": "1.36", "resourcesVpcConfig": { "subnetIds": ["subnet-ExampleID1"], "endpointPublicAccess": true, "endpointPrivateAccess": true }, "logging": { "clusterLogging": [{ "types": ["api", "audit", "authenticator", "controllerManager", "scheduler"], "enabled": true }] }, "accessConfig": { "authenticationMode": "API_AND_CONFIG_MAP", "bootstrapClusterCreatorAdminPermissions": true }, "outpostConfig": { "outpostArns": ["arn:aws:outposts:region-code:111122223333:outpost/op-uniqueid"], "controlPlaneInstanceType": "m5.large", "controlPlanePlacement": { "spreadLevel": "host" }, "etcdInstanceType": "m5.large", "etcdPlacement": { "spreadLevel": "host" } } }

Los parámetros controlPlaneInstanceType y etcdInstanceType son obligatorios cuando se crea un clúster local en Outposts configurado con el almacén de instancias de EC2. Los parámetros controlPlanePlacement y etcdPlacement son opcionales. Si no los especifica, no se aplicará ninguna estrategia de distribución por ubicación.

nota

outpostConfig es una propiedad de solo creación. Para cambiar el tipo de instancia del plano de control, el tipo de instancia de etcd, la ubicación o el Outpost, debe crear un clúster nuevo.

Conexión al clúster

Configure kubectl para comunicarse con el clúster:

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

Si creó el clúster con las versiones de la AWS CLI anteriores a 2.35.3, debe actualizar kubeconfig para especificar --cluster-name (en lugar de --cluster-id) en los argumentos exec

El punto de conexión del servidor de la API de Kubernetes del clúster se aloja en Amazon Route 53. El punto de conexión se resuelve en las direcciones IP privadas de las interfaces de red elásticas (ENI) entre cuentas que Amazon EKS crea en las subredes. Estas ENI tienen direcciones IP privadas fijas que no cambian a lo largo del ciclo de vida del clúster.

Al crear un clúster, Amazon EKS crea de 3 interfaces de red elásticas en las subredes que especifique. Estas interfaces de red permiten la comunicación entre el clúster y la VPC. Cada interfaz de red cuenta con el texto Amazon EKS cluster-name en su descripción.

Implementación de nodos de trabajo

Implemente nodos de trabajo en el clúster local mediante grupos de nodos autoadministrados.

  1. Implemente la plantilla de AWS CloudFormation del nodo de trabajo o cree instancias de EC2 individuales en el Outpost.

    curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2025-11-24/amazon-eks-outpost-nodegroup.yaml
  2. Conceda al rol de instancia del nodo acceso al clúster. Cree una entrada de acceso para el rol de IAM del nodo:

    aws eks create-access-entry \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/myNodeRole \ --type EC2_LINUX

    Como alternativa, si utiliza el ConfigMap de aws-auth para la autenticación, agregue el rol de instancia de nodo al ConfigMap. Consulte Concesión a los usuarios y roles de IAM de acceso a las API de Kubernetes.

  3. Compruebe que el estado de los nodos sea Ready:

    kubectl get nodes

Recursos internos

Al crear un clúster local, Amazon EKS instala automáticamente las versiones autoadministradas de los siguientes complementos en el espacio de nombres kube-system: coredns, kube-proxy y aws-node (CNI de VPC). Opcionalmente, puede instalar las versiones administradas de estos complementos a través de la API de complementos de Amazon EKS. Para obtener más información, consulte Complementos de Amazon EKS para clústeres locales en AWS Outposts configurados con el almacén de instancias de EC2.

Amazon EKS también crea interfaces de red elásticas (ENI) entre cuentas en las subredes para la comunicación entre clústeres y VPC. No elimine estas interfaces de red. Si se elimina una ENI multicuenta o cambia la dirección IP, todos los nodos y administradores que utilicen un acceso estático basado en IP deben actualizarse manualmente.