Amazon EKS 入門:AWS Management Console 和 AWS CLI
本指南可協助您使用 AWS Management Console 和 AWS CLI 建立 Amazon Elastic Kubernetes Service (Amazon EKS) 入門所有所需的資源。在本指南中,您可以手動建立每個資源。此教學結束時,您將擁有一個執行中的 Amazon EKS 叢集,而您可以在其中部署應用程式。
本指南中的程序可讓您完全瞭解每個資源的建立方式,以及資源彼此之間的互動方式。如果您希望自動為您建立大部分資源,請使用 eksctl
CLI 建立叢集和節點。如需詳細資訊,請參閱 Amazon EKS 入門:eksctl。
先決條件
開始此教學之前,您必須先安裝和設定下列在建立和管理 Amazon EKS 叢集所需的工具和資源。
-
AWS CLI:命令列工具,適用於使用 AWS 服務,包括 Amazon EKS。本指南要求您使用 2.4.9 版或更新版本或 1.22.30 版或更新版本。如需詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的安裝、更新和解除安裝 AWS CLI。安裝 AWS CLI 後,建議您也進行設定。如需詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的使用
aws configure
進行快速組態設定。 -
kubectl
:命令列工具,適用於使用 Kubernetes 叢集。本指南要求您使用 1.21 版或更新版本。如需詳細資訊,請參閱 安裝 kubectl。 -
所需的 IAM 許可:您使用的 IAM 安全委託人必須具有使用 Amazon EKS IAM 角色和服務連結角色、AWS CloudFormation 以及 VPC 和相關資源的許可權。如需詳細資訊,請參閱《IAM 使用者指南》中的 Amazon Elastic Kubernetes Service 的動作、資源和條件索引鍵以及使用服務連結角色。您必須以同一位使用者的身分完成本指南中的所有步驟。
步驟 1:建立您的 Amazon EKS 叢集
為了盡可能簡單快速地開始使用,本主題包含使用預設設定建立叢集的步驟。建立叢集供生產使用之前,建議您先熟悉所有設定,再使用符合需求的設定來部署叢集。如需詳細資訊,請參閱 建立 Amazon EKS 叢集。只有在建立叢集時,才能夠啟用某些設定。
若要建立叢集
-
使用符合 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-namemy-eks-vpc-stack
\ --template-url https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml提示 如需上一個命令建立的所有資源清單,請開啟位於 https://console.aws.amazon.com/cloudformation
的 AWS CloudFormation 主控台。選擇 my-eks-vpc-stack
堆疊,然後選擇 Resources (資源) 索引標籤。 -
建立叢集 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 EKS 受管 IAM 政策連接到角色。
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name
myAmazonEKSClusterRole
-
在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters
。 請務必確認在主控台右上方顯示的 AWS 區域 是您要建立叢集的 AWS 區域。如果不是,請選擇 AWS 區域 名稱旁的下拉式清單,然後選擇要使用的 AWS 區域。
-
選擇 Add cluster (新增叢集),然後選擇 Create (建立)。如果沒有看到這個選項,請先在左側導覽窗格中選擇 Amazon EKS Clusters (叢集)。
-
在 Configure cluster (設定叢集) 頁面上,執行下列作業:
-
輸入叢集的 Name (名稱),例如
my-cluster
。 -
對於 Cluster Service Role (叢集服務角色),選擇
myAmazonEKSClusterRole
。 -
將其餘設定維持在其預設值,然後選取 Next (下一步)。
-
-
在 Specify networking (指定聯網) 頁面中,執行下列操作:
-
從 VPC 下拉式清單中選擇在先前步驟中建立的 VPC ID。這是類似
vpc-00x0000x000x0x000
|my-eks-vpc-stack-VPC
的文字。 -
將其餘設定維持在其預設值,然後選取 Next (下一步)。
-
-
在 Configure logging (設定記錄) 頁面上,選取 Next (下一步)。
-
在 Review and create (檢閱和建立) 頁面上,選取 Create (建立)。
叢集名稱右側的叢集狀態會顯示 Creating (建立中) 幾分鐘,直到叢集佈建程序完成為止。在狀態為 Active (作用中) 之前不要進行下一個步驟。
注意 您可能會收到錯誤,表示在請求中的其中一個可用區域沒有足夠的容量可建立 Amazon EKS 叢集。如果發生這種情況,錯誤輸出包含的可用區域可支援新的叢集。使用至少兩個位於帳戶的支援可用區域子網路來建立您的叢集。如需詳細資訊,請參閱 容量不足。
步驟 2:將您的電腦設為與叢集進行通訊
在此區段中,您會為叢集建立 kubeconfig
檔案。此檔案中的設定會啟用 kubectl
CLI 與您的叢集進行通訊。
若要設定您的電腦與叢集通訊
-
為您的叢集建立或更新
kubeconfig
檔案。使用在其中建立叢集的 AWS 區域 取代region-code
,再使用叢集名稱取代my-cluster
。aws eks update-kubeconfig --region
region-code
--namemy-cluster
根據預設,已在
~/.kube
建立了config
檔案,或者已將新叢集的組態新增至現有~/.kube
中的config
檔案。 -
測試組態。
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:建立節點
為了盡可能簡單快速地開始使用,本主題包含使用預設設定建立節點的步驟。建立節點供生產使用之前,建議您先熟悉所有設定,再使用符合需求的設定來部署節點。如需詳細資訊,請參閱 Amazon EKS 節點。只有在建立節點時,才能夠啟用某些設定。
您可以使用下列其中一種節點類型來建立叢集。若要進一步了解每種類型,請參閱 Amazon EKS 節點。叢集部署完成後,您可以新增其他節點類型。
-
Fargate – Linux:如果您想要在 AWS Fargate 上執行 Linux 應用程式,請選取此節點類型。Fargate 是無伺服器運算引擎,可讓您部署 Kubernetes Pod,而無需管理 Amazon EC2 執行個體。
-
受管節點 – Linux:如果您想要在 Amazon EC2 執行個體上執行 Amazon Linux 應用程式,請選取此節點類型。雖然未涵蓋在本指南中,但您也可以將 Windows 自我管理和 Bottlerocket 節點新增至您的叢集。
步驟 4:檢視資源
您可以檢視節點和 Kubernetes 工作負載。
檢視節點和工作負載
-
在左側導覽窗格中選擇 Amazon EKS Clusters (叢集)。在 Clusters (叢集) 清單中,選擇您建立之叢集的名稱,例如
my-cluster
。 -
在
my-cluster
頁面上,執行以下作業:
步驟 5:刪除資源
在完成為本教學建立的叢集和節點後,您應該刪除所建立的資源。如果想在刪除資源前使用此叢集執行更多作業,請參閱 下一步驟。
刪除在本指南中建立的資源
-
刪除您建立的任何節點群組或 Fargate 設定檔。
-
在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters
。 -
在左側導覽窗格中選擇 Amazon EKS Clusters (叢集)。在叢集清單中,選取
my-cluster
。 -
選擇 Configuration (組態) 索引標籤,然後選擇 Compute (運算) 索引標籤。
-
如果建立了節點群組,請選擇
my-nodegroup
節點群組,然後選擇 Delete (刪除)。輸入
,然後選擇 Delete (刪除)。my-nodegroup
-
對於您建立的每個 Fargate 設定檔,選擇此設定檔,然後選擇 Delete (刪除)。輸入設定檔的名稱,然後選取 Delete (刪除)。
注意 刪除第二個 Fargate 設定檔時,您可能需要等待第一個設定檔完成刪除。
-
請刪除節點群組或 Fargate 設定檔後再繼續。
-
-
刪除叢集。
-
在左側導覽窗格中選擇 Amazon EKS Clusters (叢集)。在叢集清單中,選取
my-cluster
。 -
選擇 Delete cluster (刪除叢集)。
-
輸入
,然後選擇 Delete (刪除)。刪除叢集後再繼續。my-cluster
-
-
刪除建立的 VPC AWS CloudFormation 堆疊。
-
在以下網址開啟 AWS CloudFormation 主控台:https://console.aws.amazon.com/cloudformation
。 -
選取
my-eks-vpc-stack
堆疊,然後選擇 Delete (刪除)。 -
在 Delete
my-eks-vpc-stack
(刪除 my-eks-vpc-stack) 確認對話方塊中,選擇 Delete stack (刪除堆疊)。
-
-
刪除您建立的 IAM 角色。
-
在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/
。 -
在左側導覽窗格中,選擇 Roles (角色)。
-
從清單中選擇您建立的每個角色 (
myAmazonEKSClusterRole
,以及myAmazonEKSFargatePodExecutionRole
或myAmazonEKSNodeRole
)。選擇 Delete (刪除),輸入請求的確認文字,然後選擇 Delete (刪除)。
-
下一步驟
以下文件主題可協助您擴展叢集的功能。
建立叢集的 IAM 實體 (使用者或角色) 是唯一可以使用
kubectl
對 Kubernetes API 伺服器進行呼叫的 IAM 使用者。如果要讓其他使用者存取叢集,請參閱 啟用 IAM 使用者和角色對叢集的存取權。將範例應用程式部署至叢集。
部署叢集以供生產使用之前,建議您先熟悉叢集和節點的所有設定。建立叢集時,必須進行某些設定 (例如啟用對 Amazon EC2 節點的 SSH 存取)。
若要提高叢集的安全性,可將 Amazon VPC 容器聯網介面外掛程式設定為使用服務帳戶的 IAM 角色。