將 JEG Pod 部署至節點群組 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將 JEG Pod 部署至節點群組

JEG (Jupyter Enterprise Gateway) Pod 放置功能可讓您在特定節點群組上部署互動式端點。使用此功能,可以設定互動端點的設定,例如 instance type

將 JEG Pod 與受管節點群組建立關聯

下列組態屬性可讓您在要部署 JEG Pod 的 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. 使用下列命令,將 for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName Kubernetes 標籤新增至受管節點群組 NodeGroupName 中的所有節點:

    kubectl label nodes --selector eks:nodegroup-name=NodeGroupName for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName
  2. 使用下列命令,確認已正確標記節點:

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

受管節點群組必須與 Amazon EKS叢集的安全群組相關聯,如果您使用 建立叢集和受管節點群組,通常是這種情況eksctl。您可以使用下列步驟在 AWS 主控台中驗證此項目。

  1. 前往 Amazon EKS主控台中的叢集。

  2. 轉至叢集的「聯網」索引標籤,並記下叢集安全群組。

  3. 轉至叢集的「運算」索引標籤,然後按一下受管節點群組名稱。

  4. 在受管節點群組的詳細資訊索引標籤下,確認您先前記下的叢集安全群組列在安全群組下。

如果受管節點群組未連接至 Amazon EKS叢集安全群組,您需要將for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName標籤連接至節點群組安全群組。使用下列步驟來附接此標籤。

  1. 前往 Amazon EC2主控台,然後按一下左側導覽窗格中的安全群組。

  2. 按一下核取方塊,選取受管節點群組的安全群組。

  3. 標籤索引標籤下,使用管理標籤按鈕新增標籤 for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName

將 JEG Pod 與自我管理節點群組建立關聯

下列組態屬性可讓您在要部署 Pod 的 Amazon JEG 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 建立自我管理節點群組,請使用下列命令將 for-use-with-emr-containers-managed-endpoint-ng=NodeGroupName Kubernetes 標籤一次新增至自我管理節點群組 NodeGroupName 中的所有節點。

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

    如果您未使用 eksctl 建立自我管理節點群組,則需要將上述命令中的選取器取代為附接至節點群組中所有節點的不同 Kubernetes 標籤。

  2. 使用下列命令,確認已正確標記節點:

    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主控台。在左側導覽窗格中,選取安全群組

  2. 選取自我管理節點群組中安全群組旁邊的核取方塊。

  3. 標籤索引標籤下,使用管理標籤按鈕新增標籤 for-use-with-emr-containers-managed-endpoint-sg=ClusterName/NodeGroupName。用適當的值取代 ClusterNameNodeGroupName

將 JEG Pod 與受管節點群組與隨需執行個體建立關聯

也可以定義其他標籤 (稱為 Kubernetes 標籤選取器),以指定其他約束或限制,以便在指定節點或節點群組上執行互動端點。下列範例示範如何將隨需 Amazon EC2執行個體用於 JEG Pod。

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

只能將 node-labels 屬性與 managed-nodegroup-nameself-managed-nodegroup-name 屬性搭配使用。