Amazon EKS 入門– AWS 管理主控台 和 AWS CLI - Amazon EKS

協助改進此頁面

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

Amazon EKS 入門– AWS 管理主控台 和 AWS CLI

注意

本主題涵蓋不使用 EKS 自動模式時的入門。它會使用受管節點群組來部署節點。

EKS 自動模式會自動執行用於叢集運算、儲存和聯網的例行任務。了解如何開始使用 Amazon EKS 自動模式。EKS 自動模式是部署節點的慣用方法。

本指南可協助您使用 AWS 管理主控台 和 AWS CLI 建立 Amazon Elastic Kubernetes Service (Amazon EKS) 入門所需的所有資源。在本指南中,您可以手動建立每個資源。此教學結束時,您將擁有一個執行中的 Amazon EKS 叢集,而您可以在其中部署應用程式。

本指南中的程序可讓您完全瞭解每個資源的建立方式,以及資源彼此之間的互動方式。如果您希望自動為您建立大部分資源,請使用 eksctl CLI 建立叢集和節點。如需詳細資訊,請參閱 Amazon EKS 入門 – eksctl

先決條件

開始此教學之前,您必須先安裝和設定下列在建立和管理 Amazon EKS 叢集所需的工具和資源。

  • AWS CLI:命令列工具,適用於使用 AWS 服務,包括 Amazon EKS。如需詳細資訊,請參閱《AWS 命令列介面使用者指南》中的安裝。安裝 AWS CLI 後,建議您也進行設定。如需詳細資訊,請參閱《AWS 命令列介面使用者指南》中的使用 aws configure 的快速組態。請注意,需要 AWS CLI v2 才能使用此頁面中顯示的 update-kubeconfig 選項。

  • kubectl :命令列工具,適用於使用 Kubernetes 叢集。如需詳細資訊,請參閱 設定 kubectl 和 eksctl

  • 所需的 IAM 許可:您使用的 IAM 安全主體必須具有使用 Amazon EKS IAM 角色、服務連結角色、AWS CloudFormation、VPC 和相關資源的許可。如需詳細資訊,請參閱《IAM 使用者指南》中的動作使用服務連結角色。您必須以同一位使用者的身分完成本指南中的所有步驟。若要檢查目前使用者,請執行以下命令:

    aws sts get-caller-identity

建議您在 Bash shell 中完成本主題中的步驟。如果您不使用 Bash shell,則某些指令碼命令 (如行接續字元以及設定和使用變數的方式) 需要針對 shell 進行調整。此外,您的 Shell 的引用及轉義規則可能會有所不同。如需詳細資訊,請參閱《AWS 命令行介面使用者指南》中的在 AWS CLI 中使用引號括住字串

步驟 1:建立您的 Amazon EKS 叢集

重要

為了盡可能簡單快速地開始使用,本主題包含使用預設設定建立叢集的步驟。建立叢集供生產使用之前,建議您先熟悉所有設定,再使用符合需求的設定來部署叢集。如需詳細資訊,請參閱 建立 Amazon EKS 叢集。只有在建立叢集時,才能夠啟用某些設定。

  1. 使用符合 Amazon EKS 要求的公有和私有子網路建立 Amazon VPC。使用 Amazon EKS 支援的任何 AWS 區域取代 region-code。如需 AWS 區域的清單,請參閱《AWS 一般參考》指南中的 Amazon EKS 端點和配額。您可以使用選擇的任何名稱取代 my-eks-vpc-stack

    aws cloudformation create-stack \ --region region-code \ --stack-name my-eks-vpc-stack \ --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
    提示

    如需上一個命令建立的所有資源清單,請開啟位於 https://console.aws.amazon.com/cloudformation/ 的 AWS CloudFormation 主控台。選擇 my-eks-vpc-stack 堆疊,然後選擇 Resources (資源) 索引標籤。

  2. 建立叢集 IAM 角色,並將所需的 Amazon EKS IAM 受管政策連接到該角色。受 Amazon EKS 管理的 Kubernetes 叢集會代表您呼叫其他 AWS 服務,以管理您搭配本服務使用的資源。

    1. 將下列內容複製到名為 eks-cluster-role-trust-policy.json 的檔案。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 建立角色。

      aws iam create-role \ --role-name myAmazonEKSClusterRole \ --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
    3. 將必要的 Amazon EKS 受管 IAM 政策連接到角色。

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name myAmazonEKSClusterRole
  3. 開啟位於 https://console.aws.amazon.com/eks/home#/clusters 的 Amazon EKS 主控台。

    請務必確認在主控台右上方顯示的 AWS 區域是您要建立叢集的 AWS 區域。如果不是,請選擇 AWS 區域名稱旁的下拉式清單,然後選擇要使用的 AWS 區域。

  4. 選擇 建立叢集。如果沒有看到這個選項,請先在左側導覽窗格中選擇叢集

  5. Configure cluster (設定叢集) 頁面上,執行下列操作:

    1. 選取自訂組態,並停用使用 EKS 自動模式。(如果您偏好 EKS 自動模式叢集,則請改為參閱 使用 AWS 管理主控台 建立 EKS 自動模式叢集。)

    2. 輸入叢集的名稱,例如 my-cluster。此名稱僅能使用英數字元 (區分大小寫) 和連字號。必須以英數字元開頭,且長度不可超過 100 個字元。在您要建立叢集的 AWS 區域和 AWS 帳戶中,該名稱必須是唯一的。

    3. 對於 Cluster Service Role (叢集服務角色),選擇 myAmazonEKSClusterRole

    4. 將其餘設定維持在其預設值,然後選取 Next (下一步)。

  6. Specify networking (指定聯網) 頁面中,執行下列操作:

    1. VPC 下拉式清單中選擇在先前步驟中建立的 VPC ID。其類似於 * | my-eks-vpc-stack-VPC

    2. 子網路下拉式清單中,選擇上一個步驟中建立的子網路。子網路將類似於 * | my-eks-vpc-stack-*

    3. 額外的安全群組下拉式清單中,選擇在上一個步驟中建立的安全群組。其類似於 * | my-eks-vpc-stack-ControlPlaneSecurityGroup-*

    4. 將其餘設定維持在其預設值,然後選取 Next (下一步)。

  7. 設定可觀測性頁面上,選擇下一步

  8. 選取附加元件頁面上,選擇下一步

    如需附加元件的詳細資訊,請參閱 Amazon EKS 附加元件

  9. 設定選取的附加元件設定頁面中,選取下一步

  10. Review and create (檢閱和建立) 頁面上,選取 Create (建立)。

    叢集名稱右側的叢集狀態會顯示建立中幾分鐘,直到叢集佈建程序完成為止。在狀態為作用中之前不要進行下一個步驟。

    注意

    您可能會收到錯誤,表示在請求中的其中一個可用區域沒有足夠的容量可建立 Amazon EKS 叢集。如果發生這種情況,錯誤輸出包含的可用區域可支援新的叢集。使用至少兩個位於帳戶的支援可用區域子網路來建立您的叢集。如需詳細資訊,請參閱 容量不足

步驟 2:將您的電腦設為與叢集進行通訊

在此區段中,您會為叢集建立 kubeconfig 檔案。此檔案中的設定會啟用 kubectl CLI 與您的叢集進行通訊。

在繼續之前,請確保在步驟 1 中,您的叢集建立已成功完成。

  1. 為您的叢集建立或更新 kubeconfig 檔案。請使用您在其中建立叢集的 AWS 區域取代 region-code。使用您叢集的名稱取代 my-cluster

    aws eks update-kubeconfig --region region-code --name my-cluster

    根據預設,已在 ~/.kube 建立了 config 檔案,或者已將新叢集的組態新增至 ~/.kube 中的現有 config 檔案。

  2. 測試組態。

    kubectl get svc
    注意

    如果您收到任何授權或資源類型錯誤,請參閱故障診斷主題中的未經授權或存取遭拒 (kubectl)

    範例輸出如下。

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m

步驟 3:建立節點

重要

為了盡可能簡單快速地開始使用,本主題包含使用大多數預設設定建立節點的步驟。建立節點供生產使用之前,建議您先熟悉所有設定,再使用符合需求的設定來部署節點。如需詳細資訊,請參閱 使用節點管理運算資源。只有在建立節點時,才能夠啟用某些設定。

此程序會將您的叢集設定為使用受管節點群組來建立節點,並指定您在先前步驟中建立的子網路和節點 IAM 角色。它可讓您在 Amazon EC2 執行個體上執行 Amazon Linux 應用程式。

若要進一步了解在 EKS 中設定節點的不同方式,請參閱 使用節點管理運算資源。叢集部署完成後,您可以新增其他節點類型。雖然未涵蓋在本指南中,但您也可以將 Windows 自我管理Bottlerocket 節點新增至您的叢集。

若要建立 EC2 Linux 受管節點群組

  1. 建立節點 IAM 角色,並將所需的 Amazon EKS IAM 受管政策連接到該角色。Amazon EKS 節點 kubelet 常駐程式會代表您呼叫 AWS API。節點透過 IAM 執行個體描述檔和關聯的政策,取得這些 API 呼叫的許可。

    1. 將下列內容複製到名為 node-role-trust-policy.json 的檔案。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 建立節點 IAM 角色。

      aws iam create-role \ --role-name myAmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-policy.json"
    3. 將所需的受管 IAM 政策連接到角色。

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name myAmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \ --role-name myAmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name myAmazonEKSNodeRole
    4. 開啟位於 https://console.aws.amazon.com/eks/home#/clusters 的 Amazon EKS 主控台。

    5. 選擇您在步驟 1:建立 Amazon EKS 叢集中建立的叢集的名稱,例如 my-cluster

    6. my-cluster 頁面上,執行下列操作:

    7. 選擇 Compute (運算) 索引標籤。

    8. 選擇 Add Node Group (新增節點群組)。

  2. Configure Node Group (設定節點群組) 頁面上,執行以下操作:

    1. 對於名稱,輸入受管節點群組的唯一名稱,例如 my-nodegroup。節點群組名稱不可超過 63 個字元。它必須以字母或數字開頭,但剩餘字元也可以包含連字符和底線。

    2. 對於 Node IAM role name (節點 IAM 角色名稱),選擇您在前一個步驟建立的 myAmazonEKSNodeRole 角色。建議每個節點群組使用其唯一的 IAM 角色。

    3. 選擇下一步

  3. Set compute and scaling configuration (設定運算和擴展組態) 頁面上,接受預設值,然後選取 Next (下一步)。

  4. Specify networking (指定聯網) 頁面上,接受預設值,然後選取 Next (下一步)。

  5. Review and create (檢閱並建立) 頁面上,檢閱您的受管節點群組組態,然後選擇 Create (建立)

  6. 數分鐘後,Node Group configuration (節點群組組態) 區段中的 Status (狀態) 將從 Creating (建立中) 變更為 Active (作用中)。在狀態為作用中之前不要進行下一個步驟。

步驟 4:檢視資源

您可以檢視節點和 Kubernetes 工作負載。

  1. 在左側導覽窗格中選擇叢集。在 Clusters (叢集) 清單中,選擇您建立之叢集的名稱,例如 my-cluster

  2. my-cluster 頁面上,選擇以下事項:

    1. Compute (運算) 標籤 – 您可以看到為叢集部署的 Nodes (節點) 清單。您可以選取節點的名稱,以查看有關節點的詳細資訊。

    2. 資源標籤:您會看到預設部署到 Amazon EKS 叢集的所有 Kubernetes 資源。在主控台中選取任何資源類型,以進一步了解其詳細資訊。

步驟 5:刪除資源

在完成為本教學建立的叢集和節點後,您應該刪除所建立的資源。如果想在刪除資源前使用此叢集執行更多作業,請參閱 後續步驟

  1. 刪除您建立的任何節點群組設定檔。

    1. 開啟位於 https://console.aws.amazon.com/eks/home#/clusters 的 Amazon EKS 主控台。

    2. 在左側導覽窗格中選擇叢集。在叢集清單中,選取 my-cluster

    3. 選擇 Compute (運算) 索引標籤。

    4. 如果建立了節點群組,請選擇 my-nodegroup 節點群組,然後選擇 Delete (刪除)。輸入 my-nodegroup,然後選擇刪除

    5. 請刪除節點群組設定檔後再繼續。

  2. 刪除叢集。

    1. 在左側導覽窗格中選擇叢集。在叢集清單中,選取 my-cluster

    2. 選擇 Delete cluster (刪除叢集)

    3. 輸入 my-cluster,然後選擇刪除。刪除叢集後再繼續。

  3. 刪除建立的 VPC AWS CloudFormation 堆疊。

    1. 開啟位在 https://console.aws.amazon.com/cloudformation/ 的 CloudFormation​ 主控台。

    2. 選取 my-eks-vpc-stack 堆疊,然後選擇 Delete (刪除)。

    3. 刪除 my-eks-vpc-stack 確認對話方塊中,選擇刪除堆疊

  4. 刪除您建立的 IAM 角色。

    1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

    2. 在左側導覽窗格中,選擇 Roles (角色)。

    3. 從清單中選取您建立的每個角色 ( myAmazonEKSClusterRole ,以及 myAmazonEKSNodeRole)。選擇 Delete (刪除),輸入請求的確認文字,然後選擇 Delete (刪除)。

後續步驟

以下文件主題可協助您擴展叢集的功能。