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

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

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

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

:Envronment 生產

技能:DevOps; 容器和微服務

工作負載:所有其他工作負載

AWS 服務:亞馬遜 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 EKS 叢集使用 Amazon EKS 叢集,藉由使用 Elastic Compute Cloud (Amazon EC2) KS 叢集執行個體描述檔和 AWS CloudFormation 範本。 

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

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

先決條件和限制

先決條件

限制

  • 此模式描述如何建立基本的 Amazon EKS 叢集。對於生產叢集,您必須更新 AWS CloudFormation 式範本。 

  • 病毒碼不會部署額外的 Kubernetes 元件 (例如Exentd輸入控制器, 或儲存控制器。 

Architecture

 技術堆疊

  • AWS Cloud9

  • AWS CloudFormation

  • Amazon EKS

  • IAM

 

自動化和擴充

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

Tools

  • AWS CloudFormation— AWS CloudFormation 可幫助您模型化與設定 AWS 資源,讓您能花較少的時間管理這些資源,並且有更多時間專注在您的應用程式上。

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

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

  • 庫貝特kubectl是一種命令列公用程式,可用來與 Amazon EKS 叢集互動。

Epics

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

登入 AWS 管理主控台,開啟 IAM 主控台,選擇政策,然後選擇建立政策。選擇JSON選項卡並粘貼來自策略角色-EK-實例配置文件-雲 9.json 文件(附件)的內容。

解決政策驗證期間產生的任何安全性警告、錯誤或一般警告,然後選擇檢閱政策。輸入政策的 Name (名稱)。建議您使用eks-instance-profile-for-cloud9做為政策名稱。

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

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

在 IAM 主控台,選擇角色,接著選擇CREATE Role。選擇AWS 服務,接著選擇EC2從清單中選取。

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

在 中檢閱區段中,輸入角色的名稱。建議您使用role-eks-instance-profile-for-cloud9做為角色名稱。然後選擇 Create role (建立角色)

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

在 IAM 主控台,選擇政策,接著選擇建立政策。選擇JSON索引標籤,並貼上原則用於 eks-rbac.json 檔案的內容 (已附加)。

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

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

在 IAM 主控台,選擇角色,接著選擇CREATE Role。選擇AWS 服務,接著選擇EC2從清單中選取。選擇 Next: (下一步:) Permissions (許可),並搜尋您先前建立的 IAM 政策。根據您的需求選擇適當的標籤。

在 中檢閱區段中,輸入角色的名稱。建議您使用role-eks-admin-for-rbac做為角色名稱。然後選擇 Create role (建立角色)

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

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

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

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

Cloud 管理員
移除 AWS Cloud9 的臨時 IAM 登入資料。

佈建 AWS Cloud9 環境後,請選擇設定在齒輪圖示中。Oblogies偏好設定中,選擇AWS 設定,接著選擇登入資料

關閉AWS managed temporary credentials (AWS 受管暫時登入資料),然後關閉索引標籤。

Cloud 管理員
將 EC2 執行個體描述檔連接至基礎 EC2 執行個體。

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

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

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

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

開啟 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 雲端格式呼叫成功,您會在輸出中收到 AWS CloudFormation 格式堆疊的亞馬遜資源名稱 (ARN)。建立堆疊可能需要 10 到 20 分鐘。

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

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

堆棧狀態代碼顯示時創建堆棧CREATE_COMPLETE。如需詳細資訊,請參閱「」檢視 AWS CloudFormation 堆疊資料與資源在 AWS CloudFormation 文件中。

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

安裝kubectl在您的 AWS Cloud9 環境中,請遵循安裝 kubectl在 Amazon EKS 文件中。

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

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

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

Important (重要)EKS-DEV2是您用來建立叢集的 AWS CloudFormation 範本中的 Amazon EKS 叢集名稱。

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

Cloud 管理員
將管理員 IAM 角色新增至 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命令,然後結束檔案。

Cloud 管理員

References

Attachments

attachment.zip