Amazon EKS 入門:eksctl - Amazon EKS

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

Amazon EKS 入門:eksctl

本指南可協助您安裝在將 Amazon Elastic Kubernetes Service (Amazon EKS) 和 eksctl 搭配使用所需的所有資源,後者是簡單的命令列公用程式,可用於在 Amazon EKS 上建立和管理 Kubernetes 叢集。此教學結束時,您將擁有一個執行中的 Amazon EKS 叢集,而您可以在其中部署應用程式。

本指南中的程序會為您自動建立數個資源,而您必須在使用 AWS Management Console 建立叢集時手動建立這些資源。如果您想要手動建立大部分的資源,並進一步了解它們彼此互動的方式,請使用 AWS Management Console 來建立叢集和運算。如需詳細資訊,請參閱 Amazon EKS 入門:AWS Management Console 和 AWS CLI

必要條件

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

  • kubectl:命令列工具,適用於使用 Kubernetes 叢集。如需詳細資訊,請參閱安裝或更新 kubectl

  • eksctl:命令列工具,適用於使用 EKS 叢集,可自動執行許多個別任務。如需詳細資訊,請參閱 eksctl 文件中的 Installation 一節。

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

    aws sts get-caller-identity

步驟 1:建立 Amazon EKS 叢集和節點

重要

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

您可以使用下列其中一種節點類型來建立叢集。若要進一步了解每種類型,請參閱 Amazon EKS 節點。叢集部署完成後,您可以新增其他節點類型。

  • Fargate – Linux:如果您想要在 AWS Fargate 上執行 Linux 應用程式,請選取此節點類型。Fargate 是無伺服器運算引擎,可讓您部署 Kubernetes Pods 而無須管理 Amazon EC2 執行個體。

  • 受管節點 – Linux:如果您想要在 Amazon EC2 執行個體上執行 Amazon Linux 應用程式,請選取此節點類型。雖然未涵蓋在本指南中,但您也可以將 Windows 自我管理節點和 Bottlerocket 節點新增至您的叢集。

透過以下命令建立 Amazon EKS 叢集。您可以使用自己的值取代 my-cluster。此名稱僅能使用英數字元 (區分大小寫) 和連字號。必須以字母字元開頭,且長度不可超過 100 個字元。使用 Amazon EKS 支援的任何 AWS 區域 取代 region-code。如需 AWS 區域 清單,請參閱《AWS 一般參考》指南中的 Amazon EKS 端點和配額

Fargate – Linux
eksctl create cluster --name my-cluster --region region-code --fargate
Managed nodes – Linux
eksctl create cluster --name my-cluster --region region-code

叢集建立需要幾分鐘的時間。在建立期間,您會看到數行輸出。輸出的最後一行類似於下面的範例行。

[...]
[✓]  EKS cluster "my-cluster" in "region-code" region is ready

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

在叢集建立完成後,若要查看建立的所有資源,請檢視 AWS CloudFormation 主控台中名為 eksctl-my-cluster-cluster 的 AWS CloudFormation 堆疊:https://console.aws.amazon.com/cloudformation

步驟 2:檢視 Kubernetes 資源

  1. 檢視叢集節點。

    kubectl get nodes -o wide

    範例輸出如下。

    Fargate – Linux
    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME fargate-ip-192-0-2-0.region-code.compute.internal Ready <none> 8m3s v1.2.3-eks-1234567 192.0.2.0 <none> Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3 fargate-ip-192-0-2-1.region-code.compute.internal Ready <none> 7m30s v1.2.3-eks-1234567 192-0-2-1 <none> Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3
    Managed nodes – Linux
    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ip-192-0-2-0.region-code.compute.internal Ready <none> 6m7s v1.2.3-eks-1234567 192.0.2.0 192.0.2.2 Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3 ip-192-0-2-1.region-code.compute.internal Ready <none> 6m4s v1.2.3-eks-1234567 192.0.2.1 192.0.2.3 Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3

    如需您在輸出中看到之內容的詳細資訊,請參閱 檢視 Kubernetes 資源

  2. 檢視叢集上執行的工作負載。

    kubectl get pods -A -o wide

    範例輸出如下。

    Fargate – Linux
    NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system coredns-1234567890-abcde 1/1 Running 0 18m 192.0.2.0 fargate-ip-192-0-2-0.region-code.compute.internal <none> <none> kube-system coredns-1234567890-12345 1/1 Running 0 18m 192.0.2.1 fargate-ip-192-0-2-1.region-code.compute.internal <none> <none>
    Managed nodes – Linux
    NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system aws-node-12345 1/1 Running 0 7m43s 192.0.2.1 ip-192-0-2-1.region-code.compute.internal <none> <none> kube-system aws-node-67890 1/1 Running 0 7m46s 192.0.2.0 ip-192-0-2-0.region-code.compute.internal <none> <none> kube-system coredns-1234567890-abcde 1/1 Running 0 14m 192.0.2.3 ip-192-0-2-3.region-code.compute.internal <none> <none> kube-system coredns-1234567890-12345 1/1 Running 0 14m 192.0.2.4 ip-192-0-2-4.region-code.compute.internal <none> <none> kube-system kube-proxy-12345 1/1 Running 0 7m46s 192.0.2.0 ip-192-0-2-0.region-code.compute.internal <none> <none> kube-system kube-proxy-67890 1/1 Running 0 7m43s 192.0.2.1 ip-192-0-2-1.region-code.compute.internal <none> <none>

    如需您在輸出中看到之內容的詳細資訊,請參閱 檢視 Kubernetes 資源

步驟 3:刪除您的叢集和節點

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

eksctl delete cluster --name my-cluster --region region-code

後續步驟

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