JEG ポッドのノードグループへのデプロイ
JEG (Jupyter Enterprise Gateway) ポッド配置は、特定のノードグループにインタラクティブエンドポイントをデプロイできるようにする機能です。この機能により、インタラクティブエンドポイントの instance type
などの設定を行うことができます。
マネージドノードグループに JEG ポッドを関連付ける
次の設定プロパティでは、JEG ポッドをデプロイする Amazon EKS クラスター上のマネージドノードグループの名前を指定できます。
//payload --configuration-overrides '{ "applicationConfiguration": [ { "classification": "endpoint-configuration", "properties": { "managed-nodegroup-name":
NodeGroupName
} } ] }'
ノードグループには、ノードグループに含まれるすべてのノードに Kubernetes ラベル for-use-with-emr-containers-managed-endpoint-ng=
がアタッチされている必要があります。このタグを持つノードグループのすべてのノードをリストするには、次のコマンドを使用します。NodeGroupName
kubectl get nodes --show-labels | grep for-use-with-emr-containers-managed-endpoint-ng=
NodeGroupName
上記のコマンドの出力でマネージドノードグループの一部であるノードが返されない場合は、for-use-with-emr-containers-managed-endpoint-ng=
Kubernetes ラベルがアタッチされたノードがノードグループにありません。この場合、以下の手順に従って、そのラベルをノードグループ内のノードにアタッチします。NodeGroupName
-
次のコマンドを使用して、マネージドノードグループ
のすべてのノードにNodeGroupName
for-use-with-emr-containers-managed-endpoint-ng=
Kubernetes ラベルを追加します。NodeGroupName
kubectl label nodes --selector eks:nodegroup-name=
NodeGroupName
for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName
-
次のコマンドを使用して、ノードが正しくラベル付けされていることを確認します。
kubectl get nodes --show-labels | grep for-use-with-emr-containers-managed-endpoint-ng=
NodeGroupName
マネージドノードグループは Amazon EKS クラスターのセキュリティグループに関連付ける必要があります。通常、eksctl
を使用してクラスターとマネージドノードグループを作成した場合にこれが当てはまります。次の手順を使用して、AWS コンソールでこれを確認できます。
-
Amazon EKS コンソールでクラスターに移動します。
-
クラスターの [ネットワーキング] タブに移動し、クラスターセキュリティグループを書き留めます。
-
クラスターの [コンピューティング] タブに移動し、マネージドノードグループ名をクリックします。
-
マネージドノードグループの [詳細] タブで、前にメモしたクラスターセキュリティグループが [セキュリティグループ] に表示されていることを確認します。
マネージドノードグループが Amazon EKS クラスターセキュリティグループにアタッチされていない場合は、for-use-with-emr-containers-managed-endpoint-sg=
タグをノードグループのセキュリティグループにアタッチする必要があります。このタグをアタッチするには、次の手順を使用します。ClusterName
/NodeGroupName
-
Amazon EC2 コンソールに移動し、左側のナビゲーションペインで [セキュリティグループ] をクリックします。
-
チェックボックスをクリックして、マネージドノードグループのセキュリティグループを選択します。
-
[タグ] タブの [タグの管理] ボタンを使用してタグ
for-use-with-emr-containers-managed-endpoint-sg=
を追加します。ClusterName
/NodeGroupName
セルフマネージドノードグループに JEG ポッドを関連付ける
次の設定プロパティでは、JEG ポッドがデプロイされる Amazon EKS クラスター上のセルフマネージドノードグループまたはアンマネージドノードグループの名前を指定できます。
//payload --configuration-overrides '{ "applicationConfiguration": [ { "classification": "endpoint-configuration", "properties": { "self-managed-nodegroup-name":
NodeGroupName
} } ] }'
ノードグループには、ノードグループに含まれるすべてのノードに for-use-with-emr-containers-managed-endpoint-ng=
Kubernetes ラベルがアタッチされている必要があります。このタグを持つノードグループのすべてのノードをリストするには、次のコマンドを使用します。NodeGroupName
kubectl get nodes --show-labels | grep for-use-with-emr-containers-managed-endpoint-ng=
NodeGroupName
上記のコマンドの出力でセルフマネージドノードグループの一部であるノードが返されない場合は、for-use-with-emr-containers-managed-endpoint-ng=
Kubernetes ラベルがアタッチされたノードがノードグループにありません。この場合、以下の手順に従って、そのラベルをノードグループ内のノードにアタッチします。NodeGroupName
-
eksctl
を使用してセルフマネージドノードグループを作成した場合は、以下のコマンドを使用して、セルフマネージドノードグループ
のすべてのノードにNodeGroupName
for-use-with-emr-containers-managed-endpoint-ng=
Kubernetes ラベルを一度に追加します。NodeGroupName
kubectl label nodes --selector alpha.eksctl.io/nodegroup-name=
NodeGroupName
for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName
セルフマネージドノードグループの作成に
eksctl
を使用しなかった場合は、上記のコマンドのセレクターを、ノードグループのすべてのノードにアタッチされている別の Kubernetes ラベルに置き換える必要があります。 -
次のコマンドを使用して、ノードが正しくラベル付けされていることを確認します。
kubectl get nodes --show-labels | grep for-use-with-emr-containers-managed-endpoint-ng=
NodeGroupName
セルフマネージドノードグループのセキュリティグループには for-use-with-emr-containers-managed-endpoint-sg=
タグがアタッチされている必要があります。次の手順に従って、AWS Management Consoleからセキュリティグループにタグをアタッチします。ClusterName
/NodeGroupName
-
Amazon EC2 コンソールに移動します。左側のナビゲーションペインで [セキュリティグループ] を選択します。
-
セルフマネージドノードグループのセキュリティグループの横にあるチェックボックスをオンにします。
-
[タグ] タブの [タグの管理] ボタンを使用してタグ
for-use-with-emr-containers-managed-endpoint-sg=
を追加します。ClusterName
/NodeGroupName
とClusterName
を適切な値に置き換えます。NodeGroupName
オンデマンドインスタンスがあるマネージドノードグループに JEG ポッドを関連付ける
Kubernetes ラベルセレクターと呼ばれる追加のラベルを定義して、特定のノードまたはノードグループでインタラクティブエンドポイントを実行するための追加の制約や制限を指定することもできます。次の例は、JEG ポッドにオンデマンド Amazon EC2 インスタンスを使用する方法を示しています。
--configuration-overrides '{ "applicationConfiguration": [ { "classification": "endpoint-configuration", "properties": { "managed-nodegroup-name":
NodeGroupName
, "node-labels": "eks.amazonaws.com/capacityType:ON_DEMAND" } } ] }'
注記
node-labels
プロパティは、managed-nodegroup-name
または self-managed-nodegroup-name
プロパティでのみ使用できます。