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=
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:NodeGroupName
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=
do Kubernetes anexado. Nesse caso, siga as etapas abaixo para anexar esse rótulo aos nós do seu grupo de nós.NodeGroupName
-
Use o comando a seguir para adicionar o rótulo
for-use-with-emr-containers-managed-endpoint-ng=
do Kubernetes a todos os nós em um grupo de nós gerenciadoNodeGroupName
:NodeGroupName
kubectl label nodes --selector eks:nodegroup-name=
NodeGroupName
for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName
-
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.
-
Acesse o cluster no console do Amazon EKS.
-
Acesse a guia de redes do cluster e anote o grupo de segurança do cluster.
-
Acesse a guia de computação do seu cluster e clique no nome do grupo de nós gerenciado.
-
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=
ao grupo de segurança do grupo de nós. Use as etapas abaixo para anexar essa etiqueta.ClusterName
/NodeGroupName
-
Acesse o console do Amazon EC2 e clique em grupos de segurança no painel de navegação à esquerda.
-
Selecione o grupo de segurança do seu grupo de nós gerenciado ao clicar na caixa de seleção.
-
Na guia Etiquetas, adicione a etiqueta
for-use-with-emr-containers-managed-endpoint-sg=
usando o botão Gerenciar etiquetas.ClusterName
/NodeGroupName
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=
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:NodeGroupName
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=
do Kubernetes anexado. Nesse caso, siga as etapas abaixo para anexar esse rótulo aos nós do seu grupo de nós.NodeGroupName
-
Se você criou o grupo de nós autogerenciado usando
eksctl
, use o comando a seguir para adicionar o rótulofor-use-with-emr-containers-managed-endpoint-ng=
do Kubernetes a todos os nós no grupo de nós autogerenciadoNodeGroupName
de uma vez só.NodeGroupName
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. -
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=
anexada. Use as etapas apresentadas a seguir para anexar a etiqueta ao grupo de segurança do AWS Management Console.ClusterName
/NodeGroupName
-
Navegue até o console do Amazon EC2. Selecione Grupos de segurança no painel de navegação à esquerda.
-
Selecione a caixa de seleção ao lado do grupo de segurança do seu grupo de nós autogerenciado.
-
Na guia Etiquetas, use o botão Gerenciar etiquetas para adicionar a etiqueta
for-use-with-emr-containers-managed-endpoint-sg=
. SubstituaClusterName
/NodeGroupName
eClusterName
com os valores apropriados.NodeGroupName
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
.