本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EKS – AWS 管理主控台 和 入門 AWS CLI
本指南可協助您使用 Amazon Elastic Kubernetes Service 和 建立開始使用 Amazon EKS (AWS 管理主控台) 的所有所需資源AWS CLI。在本指南中,您會手動建立每個資源。在本教學課程的最後,您將擁有一個執行中Amazon EKS的叢集,可供您部署應用程式。
本指南中的程序可讓您完全瞭解每個資源的建立方式,以及資源彼此之間的互動方式。如果您希望自動為您建立大部分資源,請使用 eksctl
CLI 建立叢集和節點。如需詳細資訊,請參閱入門 Amazon EKS – eksctl.
Prerequisites
開始本教學課程之前,您必須安裝並設定下列需要用來建立和管理 Amazon EKS 叢集的工具和資源。
-
AWS CLI – 一種命令列工具,可用來處理 AWS 服務 (包括 Amazon EKS)。本指南要求您使用 版本 2.1.26 或更新版本,或 1.19.7 或更新版本。如需詳細資訊,請前往 安裝、更新及解除安裝 中的 AWS AWS Command Line Interface 使用者指南CLI。安裝 AWS CLI之後,建議您也設定它。如需詳細資訊,請查看 中 aws configure 的快速組態AWS Command Line Interface 使用者指南。
-
kubectl
– 適用於 Kubernetes 叢集的命令列工具。本指南要求您使用 版本 1.19 或更新版本。如需詳細資訊,請參閱安裝 kubectl. -
所需IAM許可 – 您使用IAM的安全主體必須具有使用Amazon EKSIAM角色和服務連結角色、 AWS CloudFormation以及 VPC 和相關資源的許可。如需詳細資訊,請查看 中 Amazon Elastic Amazon Elastic Container Service for Kubernetes 和使用服務連結角色https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html的動作、資源和條件金鑰IAM 使用者指南。您必須以相同的使用者身分完成本指南中的所有步驟。
步驟 1:建立您的 Amazon EKS 叢集
建立 Amazon EKS 叢集
若要快速且簡單地開始使用,此主題包含以預設設定建立叢集和節點的步驟。建立叢集和節點供實際使用之前,我們建議您熟悉所有設定,並使用符合您需求的設定來部署叢集和節點。如需詳細資訊,請查看 建立 Amazon EKS 叢集 和 Amazon EKS 節點。
建立叢集
-
建立Amazon VPC符合 Amazon EKS 要求的公有和私有子網路。
aws cloudformation create-stack \ --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 -
建立叢集IAM角色,並將所需的 Amazon EKS IAM 受管政策連接至該角色。受 Amazon EKS 管理的 Kubernetes 會代表您呼叫其他 AWS 服務,以管理您搭配本服務使用的資源。
-
將以下項目複製到名為 的檔案
。cluster-role-trust-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
建立 角色。
aws iam create-role \ --role-name
myAmazonEKSClusterRole
\ --assume-role-policy-document file://"cluster-role-trust-policy.json
" -
將所需的Amazon EKSIAM受管政策連接到角色。
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name
myAmazonEKSClusterRole
-
-
Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters
. 確認主控台右上方的區域為 。如果不是,請選取區域名稱旁的下拉式清單,然後選取 美國西部 (奧勒岡) us-west-2。雖然您可以在任何Amazon EKS支援的區域中建立叢集,但在此教學中,叢集是在 美國西部 (奧勒岡) us-west-2 中建立。
-
選取 Create cluster (建立叢集)。如果您未看到此選項,請在 Create EKS cluster (建立 EKS 叢集) 方塊中,輸入您的叢集名稱,例如
my-cluster
,然後選取 Next step (下一個步驟)。 -
在 Configure cluster (設定叢集) 頁面上,輸入您的叢集名稱,例如
並選取my-cluster (my-cluster)
myAmazonEKSClusterRole
:適用於叢集服務角色的 。將其餘設定保留為其預設值,然後選取 Next (下一步)。 -
在 Specify networking (指定聯網) 頁面上,選取
vpc-00x0000x000x0x000
|my-eks-vpc-stack-VPC
從 VPC 下拉式清單中。將其餘設定保留為其預設值,然後選取 Next (下一步)。 -
在 Configure logging (設定登入) 頁面上,選取 Next (下一步)。
-
在 Review and create (檢視和建立) 頁面,選取 Create (建立)。
在叢集名稱的右側,叢集狀態為 Creating (建立中) 幾分鐘,直到叢集設定程序完成。在狀態為 Active (作用中) 之前,請不要繼續下一個步驟。
注意 您可能會收到錯誤,表示在請求中的其中一個 可用區域 沒有足夠的容量可建立 Amazon EKS 叢集。如果發生這種情況,錯誤輸出包含的 可用區域 可支援新的叢集。使用至少兩個位於帳戶的支援 可用區域 子網路來建立您的叢集。如需詳細資訊,請參閱容量不足。
步驟 2:設定電腦以與您的叢集通訊
在本節中,您會為您的叢集建立 kubeconfig
檔案。此檔案中的設定可讓 kubectl
CLI 與您的叢集進行通訊。
將您的電腦設定為與 叢集通訊
-
為您的叢集建立或更新
kubeconfig
檔案。如有必要,請取代
,加上您建立叢集的 區域。us-west-2
aws eks update-kubeconfig \ --region
us-west-2
\ --namemy-cluster
根據預設
config
,檔案建立於~/.kube
或新叢集的組態新增至 中的現有config
檔案~/.kube
。 -
測試組態。
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 OpenID Connect (OIDC) 供應商
為您的叢集建立 IAM OpenID Connect (OIDC) 供應商,讓工作負載所使用的 Kubernetes 服務帳號可以存取 AWS 資源。您只需要為叢集完成此步驟一次。
-
選取 Configuration (組態) 標籤。
-
在 Details (詳細資訊) 區段中,複製 OpenID Connect provider URL (連接供應商 URL) 的值。
-
開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 -
在導覽面板中,選擇 Identity Providers (身分供應商)。
-
選擇 Add Provider (新增供應商)。
-
針對 Provider Type (提供者類型),選擇 OpenID Connect (連接)。
-
針對 Provider URL (提供者 URL),從步驟二貼上叢集的 OIDC 供應商 URL,然後選擇 Get cumbprint (取得指紋)。
-
針對 Audience (對象),輸入
sts.amazonaws.com
並選擇 Add provider (新增提供者)。
步驟 4:建立節點
您可以使用下列其中一個節點類型來建立叢集。若要進一步了解每種類型,請前往Amazon EKS 節點。部署您的叢集之後,您可以新增其他節點類型。
-
Fargate – Linux 如果您想要在 上執行 Linux 應用程式–,請選取此類型AWS Fargate。
-
受管節點 – Linux 如果您想要在 – 執行個體上執行Amazon Linux應用程式Amazon EC2,請選取此類型。雖然本指南未涵蓋,但您也可以將 Windows 自我管理和 Bottlerocket 節點新增到您的叢集。叢集必須至少包含一個 Linux 節點,即使所有工作負載都是 Windows 一樣。
選取含有您要建立之節點類型名稱的標籤。
步驟 5:檢視資源
您可以檢視節點和 Kubernetes 工作負載。
檢視您的節點
步驟 6:將叢集和節點移除
在您用畢為本教學課程所建立的叢集和節點後,您應該將叢集和節點除名來進行清理。如果您想要在此叢集執行更多操作,再進行清理,請查看後續步驟。
删除您的叢集和節點
-
删除所有節點群組和Fargate設定檔。
-
Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters
. -
在左側導覽中,選取 Clusters (叢集),然後在叢集清單中,選取您要移除的叢集名稱。
-
選取 Configuration (組態) 標籤。在 Compute (運算) 標籤上,選取:
-
您在前一個步驟中建立的節點群組,選取 Delete (移除)。輸入節點群組的名稱,然後選取 Delete。
-
您在上一個步驟中建立的 Fargate Profile (設定檔),選取 Delete (移除)。輸入設定檔名稱,然後選取 Delete (移除)。
-
-
-
刪除叢集。
-
Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters
. -
選取要刪除的叢集並選擇 Delete (刪除).
-
在刪除叢集確認畫面上,選擇 Delete (刪除).
-
-
删除您在本指南中建立的 VPC AWS CloudFormation 堆疊。
-
開啟位於 AWS CloudFormation 的 https://console.aws.amazon.com/cloudformation
. 主控台。 -
選取要删除的 VPC 堆疊,然後選擇 Delete。
-
在 Delete Stack confirmation (Delete 堆疊確認) 畫面上,選擇 Delete stack (Delete 堆疊)。
-
-
删除您建立的IAM角色。
-
開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 -
在左側導覽窗格中,選取 Roles (角色)。
-
選取
myAmazonEKSClusterRole
從清單中。選取 Delete role (移除角色),然後選取 Yes, Delete (是,移除)。刪除myAmazonEKSFargatePodExecutionRole
或myAmazonEKSNodeRole
您建立的 角色和myAmazonEKSCNIRole
角色 (如果您建立了的話)。
-
後續步驟
現在您已有含節點的運作中Amazon EKS叢集,您可以開始安裝 Kubernetes 附加元件,並將應用程式部署到您的叢集。以下文件主題可協助您擴展叢集的功能。
-
建立叢集的 IAM 實體 (使用者或角色) 會新增到 Kubernetes RBAC 授權表格做為管理員 (具有
system:masters
許可)。一開始,只有該 IAM 使用者可以使用kubectl
對 Kubernetes API 伺服器進行呼叫。如果您希望其他使用者擁有叢集的存取權,則必須將它們新增至aws-auth
ConfigMap
。如需詳細資訊,請參閱管理叢集的使用者或 IAM 角色。 -
限制對 IMDS 的存取權 – 如果您打算將 IAM 角色指派給所有 Kubernetes 服務帳戶,以便 Pod 只具有所需的最低許可,而叢集中沒有 Pod 需要存取 Amazon EC2 執行個體中繼資料服務 (IMDS) 的其他原因,例如擷取目前區域,那麼我們建議封鎖 Pod 存取 IMDS。如需更多詳細資訊,請參閱 IAM服務帳戶的 角色 及 限制存取 IMDS 和 Amazon EC2 執行個體描述檔登入資料。
-
Cluster Autoscaler – 配置 Kubernetes Cluster Autoscaler 以自動調整節點群組中的節點數量。
-
部署範例 Linux 工作負載 – 部署範例 Linux 應用程式以測試您的叢集和 Linux 節點。
-
叢集管理 – 了解如何使用重要工具來管理叢集。