使用 EC2 執行個體設定檔從 AWS Cloud9 部署 Amazon EKS 叢集 - AWS 方案指引

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

使用 EC2 執行個體設定檔從 AWS Cloud9 部署 Amazon EKS 叢集

由薩加爾·帕尼格拉希(AWS)創建

環境:生產

技術: DevOps;容器與微服務

工作負載:所有其他工作

AWS 服務:Amazon EKS;AWS Cloud9;AWS Identity and Access Management;AWS CloudFormation

Summary

此模式說明如何使用 AWS Cloud9 和 AWS CloudFormation 建立 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集,無需為 Amazon Web Services (AWS) 帳戶中的使用者啟用程式設計存取即可操作該叢集。

AWS Cloud9 是雲端整合式開發環境 (IDE),可協助您使用瀏覽器撰寫、執行和偵錯程式碼。AWS Cloud9 可做為控制中心,透過使用亞馬遜彈性運算雲端 (Amazon EC2) 執行個體設定檔和 AWS CloudFormation 範本佈建 Amazon EKS 叢集。 

如果您不想建立 AWS Identity and Access Management (IAM) 使用者,而且想要改用 IAM 角色,則可以使用此模式。以角色為基礎的存取控制 (RBAC) 會根據個別使用者的角色來規範資源的存取。此模式示範如何更新 Amazon EKS 叢集中的 RBAC,以允許存取特定 IAM 角色。

該模式的設定也可協助您的 DevOps 團隊使用 AWS Cloud9 功能來維護和開發基礎設施即程式碼 (IaC) 資源,以建立 Amazon EKS 基礎設施。 

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 為帳戶建立 IAM 角色和政策的許可。使用者的 IAM 角色必須包含AWSCloud9Administrator政策。還必須建立AWSServiceRoleForAmazonEKSeksNodeRoles角色,因為必須建立 Amazon EKS 叢集。

  • 庫伯尼特人概念的知識。

限制

架構

技術, 堆

  • AWS Cloud9

  • AWS CloudFormation

  • Amazon EKS

  • IAM

 

自動化和規模

您可以擴展此模式並將其整合到持續整合和持續部署 (CI/CD) 管道中,以自動化 Amazon EKS 的完整佈建。

工具

  • AWS CloudFormation — AWS 可 CloudFormation 協助您建立 AWS 資源的模型和設定,以減少管理這些資源的時間,將更多時間專注於應用程式。

  • AWS Cloud9 — AWS Cloud9 提供豐富的程式碼編輯體驗,並支援多種程式設計語言和執行階段除錯器,以及內建終端機。

  • AWS CLI — AWS Command Line Interface (AWS CLI) (AWS CLI) 是一種開放原始碼工具,可讓您使用命令列殼層中的命令與 AWS 服務互動。

  • Kubectlkubectl 命令列公用程式可用來與 Amazon EKS 叢集互動。

史诗

任務描述所需技能
建立 IAM 政策。

登入 AWS 管理主控台,開啟 IAM 主控台,選擇 [政],然後選擇 [建立政策]。選擇 JSON 選項卡並粘貼 policy-role-eks-instance-profile-for-cloud 9.json 文件中的內容(附件)。

解決原則驗證期間產生的任何安全性警告、錯誤或一般警告,然後選擇 [檢閱原則]。輸入政策的名稱。我們建議您使eks-instance-profile-for-cloud9用策略名稱。

檢閱政策 Summary (摘要) 來查看您的政策所授予的許可。然後選擇 Create policy (建立政策)。

雲端管理員
使用政策建立 IAM 角色。

在 IAM 主控台上,選擇 [角色],然後選擇 [建立角色]。選擇 AWS 服務,然後從清單中選擇 EC2

選擇下一步:許可並搜尋您先前建立的 IAM 政策。根據您的需求選擇適當的標籤。

在「複查」區段中,輸入角色的名稱。我們建議您使role-eks-instance-profile-for-cloud9用角色名稱。然後選擇 Create role (建立角色)。

雲端管理員
任務描述所需技能
建立 IAM 政策。

在 IAM 主控台上,選擇 [政],然後選擇 [建立政策]。選擇 JSON 選項卡,然後粘貼 policy-for-eks-rbac .json 文件中的內容(附件)。

解決原則驗證期間產生的任何安全性警告、錯誤或一般警告,然後選擇 [檢閱原則]。輸入政策的名稱。我們建議您使policy-for-eks-rbac用策略名稱。檢閱政策 Summary (摘要) 來查看您的政策所授予的許可。然後選擇 Create policy (建立政策)。

雲端管理員
使用政策建立 IAM 角色。

在 IAM 主控台上,選擇 [角色],然後選擇 [建立角色]。選擇 AWS 服務,然後從清單中選擇 EC2。選擇下一步:許可並搜尋您先前建立的 IAM 政策。根據您的需求選擇適當的標籤。

在「複查」區段中,輸入角色的名稱。我們建議您使role-eks-admin-for-rbac用角色名稱。然後選擇 Create role (建立角色)。

雲端管理員
任務描述所需技能
建立 AWS Cloud9 環境。

開啟 AWS Cloud9 主控台,然後選擇建立環境。在 [名稱環境] 頁面上,輸入環境的名稱。我們建議您使eks-management-env用環境名稱。根據您的需求設定其餘設定,然後選擇 [下一步]。

Review (檢閱) 頁面上,選擇 Create environment (建立環境)。等待 AWS Cloud9 建立您的環境。這可能需要幾分鐘的時間。

如需有關可用組態選項的詳細資訊,請參閱 AWS Cloud9 文件中的建立 EC2 環境

雲端管理員
移除 AWS Cloud9 的臨時身分與存取權管理登入資料。

佈建 AWS Cloud9 環境後,在齒輪圖示中選擇「設定」。在喜好設定下,選擇 AWS 設定,然後選擇登入資料

關閉 AWS 受管的臨時登入資料,然後關閉索引標籤。

雲端管理員
將 EC2 執行個體設定檔連接至基礎 EC2 執行個體。

開啟 Amazon EC2 主控台,然後選擇符合 AWS Cloud9 環境的 EC2 執行個體。如果您使用我們建議的名稱,則會呼叫 EC2 執行個體aws-cloud9-eks-management-env

選擇 EC2 執行個體,選擇 [動作],然後選擇 [執行個體設定]。選擇 [附加/取代 IAM 角色]。搜尋role-eks-instance-profile-for-cloud9或先前建立的 IAM 角色名稱,然後選擇 [套用]。

雲端管理員
任務描述所需技能
建立 Amazon EKS 叢集。

下載並開啟適用於 AWS 的 eks-cfn.yaml (隨附) 範本。 CloudFormation根據您的需求編輯範本。

開啟 AWS Cloud9 環境,然後選擇 [新增檔案]。將您先前建立的 AWS CloudFormation 範本貼到欄位中。我們建議您使用 eks-cfn.yaml 作為範本名稱。

在 AWS Cloud9 終端機中,執行下列命令以建立 Amazon EKS 叢集:

aws cloudformation create-stack --stack-name eks-cluster --template-body file://eks-cfn.yaml --region <your_AWS_Region>

如果 AWS CloudFormation 呼叫成功,您會在輸出中收到 AWS CloudFormation 堆疊的 Amazon 資源名稱 (ARN)。堆疊建立可能需要 10 到 20 分鐘。

雲端管理員
驗證 Amazon EKS 叢集的狀態。

在 AWS 主 CloudFormation 控台上,開啟「堆疊」頁面,然後選擇堆疊名稱。

堆疊狀態碼顯示時會建立堆疊CREATE_COMPLETE。如需詳細資訊,請參閱 AWS CloudFormation 文件中的檢視 AWS CloudFormation 堆疊資料和資源

雲端管理員
任務描述所需技能
在 AWS Cloud9 環境中安裝庫貝克特爾。

按照 Amazon EKS 文件kubectl中的安裝 kubectl 中的指示,在您的 AWS Cloud9 環境中進行安裝

雲端管理員
在 AWS Cloud9 中更新新的 Amazon EKS 組態。

在 AWS Cloud9 終端機中執行下列命令,以便kubeconfig從 Amazon EKS 叢集更新到 AWS Cloud9 環境:

aws eks update-kubeconfig --name EKS-DEV2 --region <your_AWS_Region> 

重要事項:這EKS-DEV2是您用來建立叢集的 AWS CloudFormation 範本中 Amazon EKS 叢集的名稱。

執行命kubectl get all -A令以檢視所有 Kubernetes 資源。

雲端管理員
將管理員身分與存取權管理員角色新增至 Kubernetes RBAC。

在 AWS Cloud9 終端機中執行下列命令,以編輯模式開啟適用於 Amazon EKS 的 RBAC 組態對應:

kubectl edit cm/aws-auth -n kube-system

mapRoles區段下方附加下列幾行:

- groups:  - system:masters  rolearn: <ARN_of_IAM_role _from_second_epic>  username: eksadmin

Lint YAML 格式的檔案,以避免語法錯誤。使用vi指令儲存檔案,然後結束檔案。

附註:透過新增本節,您可以通知 Kubernetes RBAC 將在 Amazon EKS 叢集上接收完整的管理員存取權。<ARN_of_IAM_role _from_second_epic>這表示識別的身分與存取權管理角色可以在 Kubernetes 叢集上執行管理動作。AWS 會在佈建 Amazon EKS 叢集mapRoles時在下方新增現有區段。

雲端管理員

相關資源

參考

附件

若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip