Implementación de un pod de JEG en un grupo de nodos - Amazon EMR

Implementación de un pod de JEG en un grupo de nodos

La colocación del pod de JEG (Jupyter Enterprise Gateway) es una característica que permite implementar un punto de conexión interactivo en un grupo de nodos específico. Con esta característica, puede configurar ajustes como instance type para el punto de conexión interactivo.

Asociación de un pod de JEG a un grupo de nodos administrado

La siguiente propiedad de configuración le permite especificar el nombre de un grupo de nodos administrado en el clúster de Amazon EKS en el que se implementará el pod de JEG.

//payload --configuration-overrides '{ "applicationConfiguration": [ { "classification": "endpoint-configuration", "properties": { "managed-nodegroup-name": NodeGroupName } } ] }'

Un grupo de nodos debe tener la etiqueta de Kubernetes for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName adjuntada a todos los nodos que forman parte del grupo de nodos. Para enumerar todos los nodos de un grupo de nodos que tienen esta etiqueta, use el siguiente comando:

kubectl get nodes --show-labels | grep for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName

Si el resultado del comando anterior no devuelve los nodos que forman parte del grupo de nodos administrado, significa que no hay nodos en el grupo de nodos que tengan la etiqueta de Kubernetes for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName adjunta. En este caso, siga los pasos que se indican a continuación para adjuntar esa etiqueta a los nodos del grupo de nodos.

  1. Use el comando siguiente para agregar la etiqueta de Kubernetes for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName a todos los nodos de un grupo de nodos administrado: NodeGroupName

    kubectl label nodes --selector eks:nodegroup-name=NodeGroupName for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName
  2. Compruebe que los nodos estén etiquetados correctamente con el siguiente comando:

    kubectl get nodes --show-labels | grep for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName

Un grupo de nodos administrado debe estar asociado al grupo de seguridad de un clúster de Amazon EKS, lo que suele ocurrir si ha creado el clúster y el grupo de nodos administrado mediante eksctl. Puede verificarlo en la consola de AWS mediante los siguientes pasos.

  1. Vaya a su clúster en la consola de Amazon EKS.

  2. Vaya a la pestaña de redes del clúster y anote su grupo de seguridad.

  3. Vaya a la pestaña de procesamiento del clúster y haga clic en el nombre del grupo de nodos administrado.

  4. En la pestaña Detalles del grupo de nodos administrado, compruebe que el grupo de seguridad del clúster que indicó anteriormente aparezca en Grupos de seguridad.

Si el grupo de nodos administrado no está asociado al grupo de seguridad del clúster de Amazon EKS, debe adjuntar la etiqueta for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName al grupo de seguridad del grupo de nodos. Siga estos pasos para adjuntar la etiqueta.

  1. Vaya a la consola de Amazon EC2 y haga clic en los grupos de seguridad del panel de navegación izquierdo.

  2. Para seleccionar el grupo de seguridad del grupo de nodos administrado, haga clic en la casilla de verificación.

  3. En la pestaña Etiquetas, agregue la etiqueta for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName con el botón Administrar etiquetas.

Asociación de un pod de JEG a un grupo de nodos autoadministrado

La siguiente propiedad de configuración le permite especificar el nombre de un grupo de nodos autoadministrado o no administrado en el clúster de Amazon EKS en el que se implementará el pod de JEG.

//payload --configuration-overrides '{ "applicationConfiguration": [ { "classification": "endpoint-configuration", "properties": { "self-managed-nodegroup-name": NodeGroupName } } ] }'

El grupo de nodos debe tener la etiqueta de Kubernetes for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName adjunta a todos los nodos que forman parte del grupo de nodos. Para enumerar todos los nodos de un grupo de nodos que tienen esta etiqueta, use el comando siguiente:

kubectl get nodes --show-labels | grep for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName

Si el resultado del comando anterior no devuelve los nodos que forman parte del grupo de nodos autoadministrado, significa que no hay nodos en el grupo de nodos que tengan la etiqueta de Kubernetes for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName adjunta. En este caso, siga los pasos que se indican a continuación para adjuntar esa etiqueta a los nodos del grupo de nodos.

  1. Si ha creado el grupo de nodos autoadministrado con eksctl, utilice el siguiente comando para agregar la etiqueta de Kubernetes for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName a todos los nodos del grupo de nodos autoadministrado NodeGroupName a la vez.

    kubectl label nodes --selector alpha.eksctl.io/nodegroup-name=NodeGroupName for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName

    Si no utilizó eksctl para crear el grupo de nodos autoadministrado, tendrá que sustituir el selector del comando anterior por una etiqueta de Kubernetes diferente que esté adjunta a todos los nodos del grupo de nodos.

  2. Utilice el siguiente comando para verificar que los nodos estén etiquetados correctamente:

    kubectl get nodes --show-labels | grep for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName

El grupo de seguridad del grupo de nodos autoadministrado debe tener la etiqueta for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName adjunta. Siga estos pasos para adjuntar la etiqueta al grupo de seguridad desde la AWS Management Console.

  1. Vaya a la consola de Amazon EC2. En el panel de navegación izquierdo, elija Grupos de seguridad.

  2. Seleccione la casilla de verificación junto al grupo de seguridad de su grupo de nodos autoadministrado.

  3. En la pestaña Etiquetas, use el botón Administrar etiquetas para agregar la etiqueta for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName. Sustituya ClusterName y NodeGroupName por los valores adecuados.

Asociación de un pod de JEG a un grupo de nodos administrado con instancias bajo demanda

También puede definir etiquetas adicionales, conocidas como selectores de etiquetas de Kubernetes, para especificar restricciones o restricciones adicionales para ejecutar un punto de conexión interactivo en un nodo o grupo de nodos determinado. En el ejemplo siguiente, se muestra cómo utilizar instancias de Amazon EC2 para un pod de JEG.

--configuration-overrides '{ "applicationConfiguration": [ { "classification": "endpoint-configuration", "properties": { "managed-nodegroup-name": NodeGroupName, "node-labels": "eks.amazonaws.com/capacityType:ON_DEMAND" } } ] }'
nota

Solo puede usar la propiedad node-labels con una propiedad managed-nodegroup-name o self-managed-nodegroup-name.