設定 Amazon EKS 叢集 - Amazon EMR

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

設定 Amazon EKS 叢集

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

先決條件

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

  • 最新版的AWS CLI。

  • kubectl版本 1.20 或更新版本。

  • 最新版的eksctl

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

使用建立 Amazon EKS 叢集eksctl

執行下列步驟,使用建立 Amazon EKS 叢集eksctl

重要

若要快速開始使用,您可以使用默認設定建立 EKS 叢集和節點。但對於生產使用,建議您自定義叢集和節點的設定,以滿足您的特定需求。如需所有設定和選項的列表,請執行命令eksctl create cluster -h。如需詳細資訊,請參閱「」建立和管理叢集中的eksctl文件中)。

  1. 建立 Amazon EC2 金 key pair。

    如果還沒有金 key pair,您可以運行下列命令建立新金 key pair。Replaceus-west-2與您要建立叢集的 Region (區域)。

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

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

    注意

    創建 EKS 羣集不需要 key pair。但是,指定金 key pair 允許您在建立節點後使用 SSH 連線至節點。只有在建立節點組時,才能指定金 key pair。

  2. 建立 EKS 叢集。

    執行下列命令以建立 EKS 叢集和節點。Replacemy-cluster我的密鑰對使用您自己的集羣名稱和 key pair 名稱。Replaceus-west-2與您要建立叢集的 Region (區域)。如需 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 或內存較低的實例類型可能會導致由於羣集中可用資源不足而導致作業失敗。要查看創建的所有資源,請查看名為eksctl-my-cluster-cluster中的AWS雲形成控制台

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

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

    eksctl建立了kubectl中的配置文件~/.kube或者將新集羣的配置添加到~/.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 Console和AWS CLI

您也可以使用AWS Management Console和AWS CLI建立 EKS 叢集。請遵循Amazon EKS 入門:AWS Management Console和AWS CLI。通過這種方式,您可以看到每個資源的建立方式,以及資源彼此之間的互動方式。

重要

為 EKS 集羣創建節點時,請使用 m5.xlarge 作為實例類型,或使用具有較高 CPU 和內存的任何其他實例類型。

創建 EKS 集羣AWS Fargate

您還可以創建一個 EKS 羣集,其中包含在AWS Fargate。

  1. 要創建具有 Fargate 上運行的容器的 EKS 羣集,請按照入門AWS Fargate使用 Amazon EKS

    注意

    EKS 上的 Amazon EMR 需要用於在 EKS 羣集上運行作業的 CoreDNS。如果你只想在 Fargate 上運行你的豆莢,你必須按照更新 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

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