建立自我管理的 Ubuntu Linux 節點 - Amazon EKS

協助改進此頁面

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

建立自我管理的 Ubuntu Linux 節點

注意

受管節點群組可能會為您的使用案例提供一些優勢。如需詳細資訊,請參閱 透過受管節點群組來簡化節點生命週期

本主題會說明如何啟動向 Amazon EKS 叢集註冊的 Amazon Elastic Kubernetes Service (EKS) 上的 UbuntuAmazon Elastic Kubernetes Service (EKS) 上的 Ubuntu Pro 節點的 Auto Scaling 群組。適用於 EKS 的 Ubuntu 和 Ubuntu Pro for 是以官方 Ubuntu Minimal LTS 為基礎,包括與 AWS 共同開發的自訂 AWS 核心,並且專為 EKS 而打造。Ubuntu Pro 透過支援 EKS 延長支援期間、核心 livepatch、FIPS 合規以及執行無限 Pro 容器的能力來新增額外的安全涵蓋範圍。

節點加入叢集後,您就可以將容器化應用程式部署至其中。如需詳細資訊,請參閱 eksctl 文件中的 AWS 上的 Ubuntu自訂 AMI 支援

重要
  • Amazon EKS 節點為標準 Amazon EC2 執行個體,會根據一般 Amazon EC2 執行個體價格向您收取這些節點的費用。如需詳細資訊,請參閱 Amazon EC2 定價

  • 您可在 AWS Outposts 的 Amazon EKS 擴充叢集中啟動 Ubuntu 節點,但無法在 AWS Outposts 的本機叢集中啟動這些節點。如需詳細資訊,請參閱 使用 AWS Outposts 在內部部署 Amazon EKS

  • 您可以使用 x86 或 Arm 處理器部署至 Amazon EC2 執行個體。不過,具有 Inferentia 晶片的執行個體可能需要先安裝 Neuron SDK

此程序需要 eksctl 版本 0.214.0 或更新版本。您可使用以下命令檢查您的版本:

eksctl version

如需如何安裝或升級 eksctl 的指示,請參閱 eksctl 文件中的安裝。注意:此程序僅適用於使用 eksctl 建立的叢集。

  1. 將以下內容複製到您的裝置。使用您叢集的名稱取代 my-cluster。此名稱僅能使用英數字元 (區分大小寫) 和連字號。必須以字母字元開頭,且長度不可超過 100 個字元。將 ng-ubuntu 取代為您的節點群組名稱。節點群組名稱不可超過 63 個字元。它必須以字母或數字開頭,但剩餘字元也可以包含連字符和底線。若要在 Arm 執行個體上部署,請以 Arm 執行個體類型取代 m5.large。使用 Amazon EC2 SSH 金鑰對名稱取代 my-ec2-keypair-name,您可以在節點啟動後使用該金鑰對來透過 SSH 連接至節點。如果您還沒有 Amazon EC2 金鑰對,可以在 AWS 管理主控台 中建立一個。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的 Amazon EC2 金鑰對。使用您自己的值取代其餘所有範例值。完成取代後,請執行修改後的命令以建立 ubuntu.yaml 檔案。

    重要

    若想將節點群組部署至 AWS Outposts、AWS Wavelength 或 AWS Local Zone 子網路,則不得在建立叢集時傳入 AWS Outposts、AWS Wavelength 或 AWS Local Zone 子網路。您必須在下列範例中指定子網路。如需詳細資訊,請參閱 eksctl 文件中的從組態檔案建立節點群組組態檔案結構描述。使用叢集所在的 AWS 區域取代 region-code

    cat >ubuntu.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: '1.33' iam: withOIDC: true nodeGroups: - name: ng-ubuntu instanceType: m5.large desiredCapacity: 3 amiFamily: Ubuntu2204 iam: attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy ssh: allow: true publicKeyName: my-ec2-keypair-name EOF

    若要建立 Ubuntu Pro 節點群組,只需將 amiFamily 值變更為 UbuntuPro2204 即可。

  2. 使用下列命令部署節點。

    eksctl create nodegroup --config-file=ubuntu.yaml

    範例輸出如下。

    建立節點時,會有數行輸出。輸出的最後幾行之一類似於以下的範例行。

    [✔] created 1 nodegroup(s) in cluster "my-cluster"
  3. (選用) 部署範例應用程式來測試您的 Ubuntu 節點。

  4. 如果下列條件為真,我們建議封鎖 Pod 對 IMDS 的存取:

    • 您計劃將 IAM 角色指派給您的所有 Kubernetes 服務帳戶,以便 Pod 僅具有所需的最低許可。

    • 叢集中沒有 Pod 出於其他原因 (例如擷取當前的 AWS 區域) 需要存取 Amazon EC2 執行個體中繼資料服務 (IMDS)。

    如需詳細資訊,請參閱‬限制存取指派給工作節點的執行個體設定檔‭