在亞馬遜 EKS 上部署 Java 微服務 - AWS Prescriptive Guidance

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

在亞馬遜 EKS 上部署 Java 微服務

由維傑湯普森 (AWS) 創建

建立者:AWS

環境:PoC 或試驗

技術:容器和微服務

工作負載:開放原始碼

AWS 服務:亞馬遜 EKS; AWS EC2 Container Registry

Summary

此模式說明如何在 Amazon 彈性資訊服務 (Amazon EKS) 中將 Java 微服務部署為容器化應用程式,方法是使用eksctl命令列實用程式和 Amazon Elastic Container Registry (Amazon ECR)。

先決條件和限制

先決條件

  • 在 Docker 上執行的現有 Java 微服務內部部署應用程式。

  • 作用中的 AWS 帳戶

  • AWS Command Line Interface (AWS CLI) 1.7 版或更新版本,在 macOS、Linux 或 Windows 上安裝和設定。

  • 所以此eksctl指令列工具程式,在 macOS、Linux 或 Windows 上安裝和設定。如需詳細資訊,請參閱「」開始使用 eksctl。 

  • 所以此葛貝指令列工具程式,在 macOS、Linux 或 Windows 上安裝和設定。如需詳細資訊,請參閱「」安裝 kubectl

Architecture

技術堆疊

  • Amazon ECR

  • Amazon EKS

Tools

  • AWS CLI— AWS 命令列界面 (CLI) 是管理 AWS 服務的統一工具。

  • Amazon ECR— Amazon Elastic Container Registry (Amazon ECR) 是一種完全受管的 Amazon Elastic Container Registry (Amazon ECR),讓開發人員能輕鬆存放、管理和部署 Docker 容器映像。

  • Amazon EKS— Amazon Elastic Kubernetes Service (Amazon EKS) 是一項受管服務,讓您輕鬆於 AWS 執行 Kubernetes,而無需代表或維護您自己的 Kubernetes 控制窗格。

  • eksctl— eksctl 在亞馬遜 EKS 上建立叢集。

  • 葛貝— kubectl 會針對庫伯內蒂斯叢集執行命令。

  • Docker— Docker 可協助您在稱為容器的套件中建置、測試和傳遞應用程式。

Epics

任務描述所需技能
建立 Amazon EKS 叢集。

使用 eksctl「建立叢集」命令。請參閱 < 其他資訊 > 一節,以取得命令語法。此命令在預設 AWS 區域中建立 Amazon EKS 叢集,並使用單一 t2.small Amazon Elastic Compute Cloud (Amazon EC2) 執行個體作為節點。建立 Amazon EKS 叢集的程序可能需要 15 到 20 分鐘。建立叢集之後,適當的 Kubeconfig 組態會新增至您的 kubernetes 檔案。

開發人員, 系統管理員
驗證 Amazon EKS 叢集。

建立叢集之後,Amazon EKS 會將 kubectl 連接到叢集。執行「kubectl 取得節點」命令,確認您已連線到 Amazon EKS 叢集。

開發人員, 系統管理員
任務描述所需技能
建立 Amazon ECR 儲存庫。

開啟 Amazon ECR 主控台。在導覽窗格中,選擇「儲存庫」,然後選擇「建立儲存庫」。如需此問題和其他故事的協助,請參閱 < 相關資源 > 一節。

開發人員, 系統管理員
上傳專案。

開啟 Amazon ECR 存放庫,選擇「檢視推送命令」,然後上傳您的專案。上傳完成後,請在 Amazon ECR 存放庫中複製最新版本的 URL。

開發人員, 系統管理員
任務描述所需技能
創建一個 YAML 格式的文件。

建立 YAML 檔案。請確定您使用之前複製的 URL 做為 Amazon ECR 存放庫的映像檔路徑。如需範例 YAML 檔案,請參閱 < 其他資訊 > 一節。

開發人員, 系統管理員
在亞馬遜 EKS 叢集上部署 Java 微服務。

設定 YAML 檔案之後,執行「kubectl 套用-f <file-name> .yaml」命令。此命令會在 Amazon EKS 叢集上部署 YAML 檔案。

開發人員, 系統管理員
驗證 Poods 的狀態。

透過執行「kubectl 取得網格」命令來驗證網格的狀態。應用程式啟動並執行後,應用程式會處於就緒狀態。

開發人員, 系統管理員
任務描述所需技能
測試和驗證應用程式。

使用您在 YAML 檔案中設定的 Classic Load Balancer 來測試和驗證應用程式。

開發人員, 系統管理員

相關資源

其他資訊

建立叢集:

eksctl create cluster \  --name <your-cluster-name> \  --version <version-number> \  --nodes=1  --node-type=t2.small

YAML 檔案範例:

apiVersion: apps/v1 kind: Deployment metadata:   name: microservice-deployment   labels:     app: java-microservice spec:   replicas: 1   selector:     matchLabels:       app: java-microservice   template:     metadata:       labels:         app: java-microservice     spec:       containers:       - name: java-microservice-container          image: 123456789123.dkr.ecr.ap-south-1.amazonaws.com/java-microservice:latest         ports:         - containerPort: 8080 --- apiVersion: v1 kind: Service metadata:   name: java-microservice-service spec:   #Creating a service of type load balancer. Load balancer gets created but takes time to reflect   type: LoadBalancer    selector:     app: java-microservice   ports:   - protocol: TCP     port: 80     targetPort: 8080