

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# JEG 포드를 노드 그룹에 배포
<a name="managed-endpoint-nodegroups-setup"></a>

Jupyter Enterprise Gateway(JEG) 포드 배치는 특정 노드 그룹에 대화형 엔드포인트를 배포할 수 있는 기능입니다. 이 기능을 사용하여 대화형 엔드포인트에 대해 `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
                }        
            }
        ] 
    }'
```

노드 그룹에는 노드 그룹에 속하는 모든 노드에 `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. 다음 명령을 사용하여 관리형 노드 그룹 `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 Management Console에서 보안 그룹에 태그를 연결합니다.

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"
                }        
            }
        ] 
    }'
```

**참고**  
`managed-nodegroup-name` 또는 `self-managed-nodegroup-name` 속성 중 하나와 함께만 `node-labels` 속성을 사용할 수 있습니다.