Implantação de um pod do JEG em um grupo de nós - Amazon EMR

Implantação de um pod do JEG em um grupo de nós

O posicionamento do pod do JEG (Jupyter Enterprise Gateway) é um recurso que permite implantar um endpoint interativo em um grupo de nós específico. Com esse recurso, você pode definir configurações, como instance type, para o endpoint interativo.

Associação de um pod do JEG a um grupo de nós gerenciado

A propriedade de configuração apresentada a seguir permite especificar o nome de um grupo de nós gerenciado no cluster do Amazon EKS em que o pod do JEG será implantado.

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

Um grupo de nós deve ter o rótulo for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName do Kubernetes anexado a todos os nós que fazem parte do grupo de nós. Para listar todos os nós de um grupo de nós que têm essa etiqueta, use o seguinte comando:

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

Se a saída do comando acima não retornar nós que fazem parte do seu grupo de nós gerenciado, então não há nós no grupo de nós que tenham o rótulo for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName do Kubernetes anexado. Nesse caso, siga as etapas abaixo para anexar esse rótulo aos nós do seu grupo de nós.

  1. Use o comando a seguir para adicionar o rótulo for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName do Kubernetes a todos os nós em um grupo de nós gerenciado NodeGroupName:

    kubectl label nodes --selector eks:nodegroup-name=NodeGroupName for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName
  2. Verifique se os nós foram rotulados corretamente usando o seguinte comando:

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

Um grupo de nós gerenciado deve estar associado a um grupo de segurança do cluster do Amazon EKS, o que geralmente acontece se você criou o cluster e o grupo de nós gerenciado usando eksctl. Você pode verificar isso no Console da AWS usando as etapas a seguir.

  1. Acesse o cluster no console do Amazon EKS.

  2. Acesse a guia de redes do cluster e anote o grupo de segurança do cluster.

  3. Acesse a guia de computação do seu cluster e clique no nome do grupo de nós gerenciado.

  4. Na guia Detalhes do grupo de nós gerenciado, verifique se o grupo de segurança do cluster anotado anteriormente está listado em Grupos de segurança.

Se o grupo de nós gerenciado não estiver anexado ao grupo de segurança do cluster do Amazon EKS, será necessário anexar a etiqueta for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName ao grupo de segurança do grupo de nós. Use as etapas abaixo para anexar essa etiqueta.

  1. Acesse o console do Amazon EC2 e clique em grupos de segurança no painel de navegação à esquerda.

  2. Selecione o grupo de segurança do seu grupo de nós gerenciado ao clicar na caixa de seleção.

  3. Na guia Etiquetas, adicione a etiqueta for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName usando o botão Gerenciar etiquetas.

Associação de um pod do JEG a um grupo de nós autogerenciado

A propriedade de configuração apresentada a seguir permite especificar o nome de um grupo de nós autogerenciado ou não gerenciado no cluster do Amazon EKS em que o pod do JEG será implantado.

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

O grupo de nós deve ter o rótulo for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName do Kubernetes anexado a todos os nós que fazem parte do grupo de nós. Para listar todos os nós de um grupo de nós que têm essa etiqueta, use o seguinte comando:

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

Se a saída do comando acima não retornar nós que fazem parte do seu grupo de nós autogerenciado, então não há nós no grupo de nós que tenham o rótulo for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName do Kubernetes anexado. Nesse caso, siga as etapas abaixo para anexar esse rótulo aos nós do seu grupo de nós.

  1. Se você criou o grupo de nós autogerenciado usando eksctl, use o comando a seguir para adicionar o rótulo for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName do Kubernetes a todos os nós no grupo de nós autogerenciado NodeGroupName de uma vez só.

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

    Caso não tenha usado eksctl para criar o grupo de nós autogerenciado, você precisará substituir o seletor no comando acima por um rótulo diferente do Kubernetes que esteja anexado a todos os nós do grupo de nós.

  2. Use o seguinte comando para verificar se os nós foram rotulados corretamente:

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

O grupo de segurança do grupo de nós autogerenciado deve ter a etiqueta for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName anexada. Use as etapas apresentadas a seguir para anexar a etiqueta ao grupo de segurança do AWS Management Console.

  1. Navegue até o console do Amazon EC2. Selecione Grupos de segurança no painel de navegação à esquerda.

  2. Selecione a caixa de seleção ao lado do grupo de segurança do seu grupo de nós autogerenciado.

  3. Na guia Etiquetas, use o botão Gerenciar etiquetas para adicionar a etiqueta for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName. Substitua ClusterName e NodeGroupName com os valores apropriados.

Associação de um pod do JEG a um grupo de nós gerenciado com instâncias sob demanda

Você também pode definir rótulos adicionais, conhecidos como seletores de rótulos do Kubernetes, para especificar limitações ou restrições adicionais à execução de um endpoint interativo em um determinado nó ou grupo de nós. O exemplo a seguir mostra como usar as instâncias sob demanda do Amazon EC2 para um pod do JEG.

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

Você pode usar a propriedade node-labels somente com uma propriedade managed-nodegroup-name ou self-managed-nodegroup-name.