設定 Amazon EKS 叢集 - Amazon EMR

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

設定 Amazon EKS 叢集

Amazon EKS 是一項受管服務,可讓您輕鬆地在上執行 Kubernetes, AWS 而無需安裝、操作和維護自己的 Kubernetes 控制平面或節點。依照下列步驟,在 Amazon EKS 中建立含有節點的新 Kubernetes 叢集。

必要條件

重要

在建立 Amazon EKS 叢集之前,請先完成《Amazon EKS 使用者指南》中的 Amazon EKS VPC 和子網路需求和考量事項,以確保您的 Amazon EKS 叢集能夠按預期運作和擴展。

必須先安裝和設定下列所需工具和資源,才能建立和管理 Amazon EKS 叢集。

  • 最新版本的 AWS CLI.

  • kubectl 1.20 或更新版本。

  • eksctl 的最新版本。

如需詳細資訊,請參閱 安裝 AWS CLI安裝 kubectl 以及 安裝 eksctl

使用 eksctl 建立 Amazon EKS 叢集

採取下列步驟,使用 eksctl 來建立 Amazon ECS 叢集。

重要

若要快速開始,可以使用預設設定來建立 EKS 叢集和節點。但對於生產使用,建議您自訂叢集和節點的設定,以符合您的特定需求。如需所有設定和選項的清單,請輸入 eksctl create cluster -h 命令。如需詳細資訊,請參閱 eksctl 文件中的建立和管理叢集

  1. 建立 Amazon EC2 金鑰對。

    如果沒有現成的金鑰對,則可以執行以下命令來建立新金鑰對。使用您建立叢集所在的區域取代 us-west-2

    aws ec2 create-key-pair --region us-west-2 --key-name myKeyPair

    將傳回的輸出儲存在本機電腦的檔案中。如需詳細資訊,請參閱《適用於 Linux 執行個體的 Amazon EC2 使用者指南》中的建立或匯入金鑰對

    注意

    建立 EKS 叢集不需要金鑰對。但是,指定金鑰對允許您在建立節點後使用 SSH 連線到節點。只有在建立節點群組時,才能指定金鑰對。

  2. 建立 EKS 叢集。

    執行下列命令建立 EKS 叢集和節點。myKeyPair用您自己的群集名稱和 key pair 名稱替換我的簇。使用您建立叢集所在的區域取代 us-west-2。如需有關 Amazon EKS 支援區域的詳細資訊,請參閱 Amazon Elastic Kubernetes Service 端點和配額

    eksctl create cluster \ --name my-cluster \ --region us-west-2 \ --with-oidc \ --ssh-access \ --ssh-public-key myKeyPair \ --instance-types=m5.xlarge \ --managed
    重要

    建立 EKS 叢集時,請使用 m5.xlarge 作為執行個體類型,或使用具有更高 CPU 和記憶體的任何其他執行個體類型。與 m5.xlarge 相比,使用具有較低 CPU 或記憶體的執行個體類型可能會因為叢集中的資源不足而導致作業失敗。若要查看建立的所有資源,請檢視 AWS Cloud Formation 主控台中名為 eksctl-my-cluster-cluster 的堆疊。

    建立叢集和節點需要幾分鐘的時間。建立叢集和節點時,您會看到數行輸出。下列範例示範輸出的最後一行。

    ... [✓] EKS cluster "my-cluster" in "us-west-2" region is ready

    eksctl 已在 ~/.kube 中建立了 kubectl 組態檔案,或將新叢集的組態新增至 ~/.kube 中的現有組態檔案。

  3. 檢視和驗證資源

    執行下列命令,以檢視您的叢集節點。

    kubectl get nodes -o wide

    下面顯示了範例輸出。

    Amazon EC2 node output NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ip-192-168-12-49.us-west-2.compute.internal Ready none 6m7s v1.18.9-eks-d1db3c 192.168.12.49 52.35.116.65 Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 docker://19.3.6 ip-192-168-72-129.us-west-2.compute.internal Ready none 6m4s v1.18.9-eks-d1db3c 192.168.72.129 44.242.140.21 Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 docker://19.3.6

    如需詳細資訊,請參閱檢視節點

    使用下列命令,以檢視在叢集上執行的工作負載。

    kubectl get pods --all-namespaces -o wide

    下面顯示了範例輸出。

    Amazon EC2 output NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system aws-node-6ctpm 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.us-west-2.compute.internal none none kube-system aws-node-cbntg 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.us-west-2.compute.internal none none kube-system coredns-559b5db75d-26t47 1/1 Running 0 14m 192.168.78.81 ip-192-168-72-129.us-west-2.compute.internal none none kube-system coredns-559b5db75d-9rvnk 1/1 Running 0 14m 192.168.29.248 ip-192-168-12-49.us-west-2.compute.internal none none kube-system kube-proxy-l8pbd 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.us-west-2.compute.internal none none kube-system kube-proxy-zh85h 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.us-west-2.compute.internal none none

    如需有關此處所展示內容的詳細資訊,請參閱檢視工作負載

使用和建立 EKS 叢集 AWS Management ConsoleAWS CLI

您也可以使用 AWS Management Console 和 AWS CLI 來建立 EKS 叢集。請按照以下步驟開始使用 Amazon EKS — AWS Management Console 和 AWS CLI. 這可讓您深入了解如何為 EKS 叢集建立每個資源,以及資源彼此之間如何互動。

重要

建立 EKS 叢集的節點時,請使用 m5.xlarge 作為執行個體類型,或使用具有更高 CPU 和記憶體的任何其他執行個體類型。

使用 AWS Fargate建立 EKS 叢集

也可以使用在 AWS Fargate上執行的 Pod 來建立 EKS 叢集。

  1. 若要使用 Fargate 上執行的網繭來建立 EKS 叢集,請按照AWS Fargate 使用 Amazon EKS 入門中概述的步驟進行操作。

    注意

    Amazon EMR on EKS 需要 CoreDNS 才能在 EKS 叢集上執行作業。如果只想在 Fargate 上執行 Pod,則必須遵循更新 CoreDNS 中的步驟。

  2. 執行下列命令,以檢視您的叢集節點。

    kubectl get nodes -o wide

    下面顯示了範例 Fargate 輸出。

    Fargate node output NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME fargate-ip-192-168-141-147.us-west-2.compute.internal Ready none 8m3s v1.18.8-eks-7c9bda 192.168.141.147 none Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 containerd://1.3.2 fargate-ip-192-168-164-53.us-west-2.compute.internal Ready none 7m30s v1.18.8-eks-7c9bda 192.168.164.53 none Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 containerd://1.3.2

    如需詳細資訊,請參閱檢視節點

  3. 執行下列命令,以檢視在叢集上執行的工作負載。

    kubectl get pods --all-namespaces -o wide

    下面顯示了範例 Fargate 輸出。

    Fargate output NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system coredns-69dfb8f894-9z95l 1/1 Running 0 18m 192.168.164.53 fargate-ip-192-168-164-53.us-west-2.compute.internal none none kube-system coredns-69dfb8f894-c8v66 1/1 Running 0 18m 192.168.141.147 fargate-ip-192-168-141-147.us-west-2.compute.internal none none

    如需詳細資訊,請參閱檢視工作負載