

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# JEG ポッドのノードグループへのデプロイ
<a name="managed-endpoint-nodegroups-setup"></a>

JEG (Jupyter Enterprise Gateway) ポッド配置は、特定のノードグループにインタラクティブエンドポイントをデプロイできるようにする機能です。この機能により、インタラクティブエンドポイントの `instance type` などの設定を行うことができます。

## マネージドノードグループに JEG ポッドを関連付ける
<a name="associate-jegpod-to-nodegroup"></a>

次の設定プロパティでは、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=NodeGroupName` Kubernetes ラベルがアタッチされたノードがノードグループにありません。この場合、以下の手順に従って、そのラベルをノードグループ内のノードにアタッチします。

1. 次のコマンドを使用して、マネージドノードグループ `NodeGroupName` のすべてのノードに `for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName` Kubernetes ラベルを追加します。

   ```
   kubectl label nodes --selector eks:nodegroup-name=NodeGroupName for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName
   ```

1. 次のコマンドを使用して、ノードが正しくラベル付けされていることを確認します。

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

マネージドノードグループは Amazon EKS クラスターのセキュリティグループに関連付ける必要があります。通常、`eksctl` を使用してクラスターとマネージドノードグループを作成した場合にこれが当てはまります。これは、次の手順を使用して AWS コンソールで確認できます。

1. Amazon EKS コンソールでクラスターに移動します。

1. クラスターの [ネットワーキング] タブに移動し、クラスターセキュリティグループを書き留めます。

1. クラスターの [コンピューティング] タブに移動し、マネージドノードグループ名をクリックします。

1. マネージドノードグループの **[詳細]** タブで、前にメモしたクラスターセキュリティグループが **[セキュリティグループ]** に表示されていることを確認します。

マネージドノードグループが Amazon EKS クラスターセキュリティグループにアタッチされていない場合は、`for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName` タグをノードグループのセキュリティグループにアタッチする必要があります。このタグをアタッチするには、次の手順を使用します。

1. Amazon EC2 コンソールに移動し、左側のナビゲーションペインで [セキュリティグループ] をクリックします。

1. チェックボックスをクリックして、マネージドノードグループのセキュリティグループを選択します。

1. **[タグ]** タブの **[タグの管理]** ボタンを使用してタグ `for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName` を追加します。

## セルフマネージドノードグループに JEG ポッドを関連付ける
<a name="associate-jegpod-to-self-managed-nodegroup"></a>

次の設定プロパティでは、JEG ポッドがデプロイされる Amazon EKS クラスター上のセルフマネージドノードグループまたはアンマネージドノードグループの名前を指定できます。

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

ノードグループには、ノードグループに含まれるすべてのノードに `for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName` Kubernetes ラベルがアタッチされている必要があります。このタグを持つノードグループのすべてのノードをリストするには、次のコマンドを使用します。

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

上記のコマンドの出力でセルフマネージドノードグループの一部であるノードが返されない場合は、`for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName` Kubernetes ラベルがアタッチされたノードがノードグループにありません。この場合、以下の手順に従って、そのラベルをノードグループ内のノードにアタッチします。

1. `eksctl` を使用してセルフマネージドノードグループを作成した場合は、以下のコマンドを使用して、セルフマネージドノードグループ `NodeGroupName` のすべてのノードに `for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName` Kubernetes ラベルを一度に追加します。

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

   セルフマネージドノードグループの作成に `eksctl` を使用しなかった場合は、上記のコマンドのセレクターを、ノードグループのすべてのノードにアタッチされている別の Kubernetes ラベルに置き換える必要があります。

1. 次のコマンドを使用して、ノードが正しくラベル付けされていることを確認します。

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

セルフマネージドノードグループのセキュリティグループには `for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName` タグがアタッチされている必要があります。次の手順に従って、 AWS マネジメントコンソールからセキュリティグループにタグをアタッチします。

1. Amazon EC2 コンソールに移動します。左側のナビゲーションペインで **[セキュリティグループ]** を選択します。

1. セルフマネージドノードグループのセキュリティグループの横にあるチェックボックスをオンにします。

1. **[タグ]** タブの **[タグの管理]** ボタンを使用してタグ `for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName` を追加します。`ClusterName` と `NodeGroupName` を適切な値に置き換えます。

## オンデマンドインスタンスがあるマネージドノードグループに JEG ポッドを関連付ける
<a name="associate-jegpod-to-on-demand-instances"></a>

*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` プロパティでのみ使用できます。