協助改進此頁面
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
連接混合節點
注意
下列步驟適用於執行 Bottlerocket 以外的相容作業系統的混合節點。如需連線執行 Bottlerocket 的混合節點的步驟,請參閱 使用 Bottlerocket 連接混合節點。
本主題會說明如何將混合節點連接至 Amazon EKS 叢集。混合節點加入叢集後,其即會在 Amazon EKS 主控台和 Kubernetes 相容工具 (例如 kubectl) 中顯示為「未就緒」狀態。完成此頁面上的步驟後,請繼續 設定混合節點的 CNI,以讓您的混合節點準備好執行應用程式。
先決條件
將混合節點連接至 Amazon EKS 叢集之前,請確保您已完成先決條件步驟。
-
您的內部部署環境與託管您的 Amazon EKS 叢集的 AWS 區域之間已建立網路連線。如需詳細資訊,請參閱「準備混合節點的聯網」。
-
您已在內部部署主機上安裝了適用於混合節點的相容作業系統。如需詳細資訊,請參閱「準備混合節點的作業系統」。
-
您已建立混合節點 IAM 角色,並設定內部部署憑證提供者 (AWS Systems Manager 混合啟用或 AWS IAM Roles Anywhere)。如需詳細資訊,請參閱「準備混合節點的憑證」。
-
您已建立了已啟用混合節點的 Amazon EKS 叢集。如需詳細資訊,請參閱「建立具有混合節點的 Amazon EKS 叢集」。
-
您已將混合節點 IAM 角色與 Kubernetes 角色型存取控制 (RBAC) 許可建立關聯。如需詳細資訊,請參閱「準備混合節點的叢集存取」。
步驟 1:在每個內部部署主機上安裝混合節點 CLI (nodeadm)
如果您在預先建置的作業系統映像中包含 Amazon EKS 混合節點 CLI (nodeadm),則可以略過此步驟。如需 nodeadm 混合節點版本的詳細資訊,請參閱 混合節點 nodeadm 參考。
nodeadm 的混合節點版本託管於前端為 Amazon CloudFront 的 Amazon S3 中。若要在每個內部部署主機上安裝 nodeadm,您可以從內部部署主機執行下列命令。
對於 x86_64 主機:
curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/amd64/nodeadm'
對於 ARM 主機
curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/arm64/nodeadm'
在每個主機上,為下載的二進位檔新增可執行檔許可。
chmod +x nodeadm
步驟 2:使用 nodeadm 安裝混合節點相依性
如果您要在預先建置的作業系統映像中安裝混合節點相依性,則可以略過此步驟。nodeadm install 命令可用於安裝混合節點所需的所有相依性。混合節點相依性包括 containerd、kubelet、kubectl 和 AWS SSM 或 AWS IAM Roles Anywhere 元件。如需 nodeadm install 所安裝元件和檔案位置的詳細資訊,請參閱 混合節點 nodeadm 參考。如需 nodeadm install 程序必須在內部部署防火牆中允許的網域的詳細資訊,請參閱混合節點的 準備混合節點的聯網。
執行以下命令,以在您的內部部署主機上安裝混合節點相依性。以下命令必須由主機上具有 sudo/root 存取權的使用者執行。
重要
混合節點 CLI (nodeadm) 必須由主機上具有 sudo/root 存取權的使用者執行。
-
使用 Amazon EKS 叢集的 Kubernetes 次要版本取代
K8S_VERSION,例如1.31。如需支援的 Kubernetes 版本的清單,請參閱 Amazon EKS 支援的版本。 -
使用您正在使用的內部部署憑證提供者取代
CREDS_PROVIDER。AWS SSM 的有效值為ssm,而 AWS IAM Roles Anywhere 的有效值為iam-ra。
nodeadm installK8S_VERSION--credential-providerCREDS_PROVIDER
步驟 3:將混合節點連接至您的叢集
將混合節點連接至您的叢集之前,請確保您已獲得內部部署防火牆和叢集的安全群組中的必要存取權,允許往返 Amazon EKS 控制平面與混合節點之間的通訊。此步驟中的大多數問題都與防火牆組態、安全群組組態或混合節點 IAM 角色組態相關。
重要
混合節點 CLI (nodeadm) 必須由主機上具有 sudo/root 存取權的使用者執行。
-
在每個主機上建立包含部署值的
nodeConfig.yaml檔案。如需可用組態設定的完整說明,請參閱 混合節點 nodeadm 參考。如果您的混合節點 IAM 角色沒有eks:DescribeCluster動作的許可,您必須在nodeConfig.yaml的叢集區段中傳遞 Kubernetes API 端點、叢集 CA 套件和 Kubernetes Service IPv4 CIDR。-
如果您為內部部署憑證提供者使用 AWS SSM 混合啟用,請使用下列
nodeConfig.yaml範例。-
使用您叢集的名稱取代
CLUSTER_NAME。 -
使用託管叢集的 AWS 區域取代
AWS_REGION。例如us-west-2。 -
使用您在建立 AWS SSM 混合啟用時收到的啟用代碼取代
ACTIVATION_CODE。如需詳細資訊,請參閱「準備混合節點的憑證」。 -
使用您在建立 AWS SSM 混合啟用時收到的啟用 ID 取代
ACTIVATION_ID。您可以從 AWS Systems Manager 主控台或 AWS CLIaws ssm describe-activations命令擷取此資訊。apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: CLUSTER_NAME region: AWS_REGION hybrid: ssm: activationCode: ACTIVATION_CODE activationId: ACTIVATION_ID
-
-
如果您為內部部署憑證提供者使用 AWS IAM Roles Anywhere,請使用下列
nodeConfig.yaml範例。-
使用您叢集的名稱取代
CLUSTER_NAME。 -
使用託管叢集的 AWS 區域取代
AWS_REGION。例如us-west-2。 -
使用您節點的名稱取代
NODE_NAME。如果您已使用"sts:RoleSessionName": "${aws:PrincipalTag/x509Subject/CN}"資源條件設定混合節點 IAM 角色的信任政策,則節點名稱必須與主機上的憑證的 CN 相符。您使用的nodeName不可超過 64 個字元。 -
使用您在準備混合節點憑證的步驟中設定的信任錨的 ARN 取代
TRUST_ANCHOR_ARN。 -
使用您在 準備混合節點的憑證 的步驟中設定的信任錨的 ARN 取代
PROFILE_ARN。 -
使用混合節點 IAM 角色的 ARN 取代
ROLE_ARN。 -
使用磁碟中節點憑證的路徑取代
CERTIFICATE_PATH。如未指定,預設為/etc/iam/pki/server.pem。 -
使用磁碟中憑證私有金鑰的路徑取代
KEY_PATH。如未指定,預設為/etc/iam/pki/server.key。apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: CLUSTER_NAME region: AWS_REGION hybrid: iamRolesAnywhere: nodeName: NODE_NAME trustAnchorArn: TRUST_ANCHOR_ARN profileArn: PROFILE_ARN roleArn: ROLE_ARN certificatePath: CERTIFICATE_PATH privateKeyPath: KEY_PATH
-
-
-
使用您的
nodeConfig.yaml執行nodeadm init命令,以將混合節點連接至 Amazon EKS 叢集。nodeadm init -c file://nodeConfig.yaml
如果上述命令成功完成,則您的混合節點已加入您的 Amazon EKS 叢集。您可以在 Amazon EKS 主控台中透過導覽至叢集的 Compute (運算) 索引標籤 (確保 IAM 主體具有檢視許可) 或使用 kubectl get nodes 來驗證這一點。
重要
您的節點將處於 Not Ready 狀態,這在意料之中,因為您的混合節點上並未執行 CNI。如果您的節點未加入叢集,請參閱 故障診斷混合節點。
步驟 4:設定混合節點的 CNI
要讓您的混合節點準備好執行應用程式,請繼續執行 設定混合節點的 CNI 上的步驟。