本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS PrivateLink 和 Network Load Balancer 在 Amazon EKS 上私下存取容器應用程式
由 Kirankumar Chandrashekar (AWS) 建立
Summary
此模式說明如何在 Network Load Balancer 後方的 Amazon Elastic Kubernetes Service (Amazon EKS) 上私有託管 Docker 容器應用程式,並使用 AWS PrivateLink 存取應用程式。然後,您可以使用私有網路安全地存取 Amazon Web Services (AWS) 雲端上的服務。
執行 Docker 應用程式的 Amazon EKS 叢集與前端的 Network Load Balancer 可以與虛擬私有雲端 (VPC) 端點建立關聯,以便透過 AWS PrivateLink 存取。然後,您可以使用 VPC 端點與其他 VPCs 共用此 VPC 端點服務。
此模式描述的設定是在 VPCs 和 AWS 帳戶之間共用應用程式存取權的安全方式。它不需要特殊的連線或路由組態,因為消費者和提供者帳戶之間的連線位於全球 AWS 骨幹,而且不會周遊公有網際網路。
先決條件和限制
先決條件
在 Linux、macOS 或 Windows 上安裝和設定 Docker
。 在 Docker 上執行的應用程式。
作用中的 AWS 帳戶
在 Linux、macOS 或 Windows 上安裝和設定 AWS Command Line Interface (AWS CLI) 第 2 版。 macOS
具有標記私有子網路並設定為託管應用程式的現有 Amazon EKS 叢集。如需詳細資訊,請參閱 Amazon EKS 文件中的子網路標記。
Kubectl,已安裝並設定為存取 Amazon EKS 叢集上的資源。如需詳細資訊,請參閱 Amazon EKS 文件中的安裝 kubectl。
架構

技術堆疊
Amazon EKS
AWS PrivateLink
Network Load Balancer
自動化和擴展
您可以在 Git 型儲存庫上追蹤和管理 Kubernetes 資訊清單,並在 AWS CodePipeline 中使用持續整合和持續交付 (CI/CD) 部署。
您可以使用 AWS CloudFormation 建立此模式,方法是使用基礎設施做為程式碼 (IaC)。
工具
AWS CLI – AWS Command Line Interface (AWS CLI) 是一種開放原始碼工具,可讓您使用命令列 Shell 中的命令與 AWS 服務互動。
Elastic Load Balancing – Elastic Load Balancing 會將傳入的應用程式或網路流量分散到一或多個可用區域中的多個目標,例如 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體、容器和 IP 地址。
Amazon EKS – Amazon Elastic Kubernetes Service (Amazon EKS) 是一項受管服務,可讓您在 AWS 上執行 Kubernetes,而無需安裝、操作和維護您自己的 Kubernetes 控制平面或節點。
Amazon VPC – Amazon Virtual Private Cloud (Amazon VPC) 可協助您在已定義的虛擬網路中啟動 AWS 資源。
Kubectl
– Kubectl 是針對 Kubernetes 叢集執行命令的命令列公用程式。
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
建立 Kubernetes 部署資訊清單檔案。 | 根據您的需求修改下列範例檔案,以建立部署資訊清單檔案。
注意這是使用 NGINX Docker 映像部署的 NGINX 範例組態檔案。如需詳細資訊,請參閱 Docker 文件中的如何使用官方 NGINX Docker 映像 | DevOps 工程師 |
部署 Kubernetes 部署資訊清單檔案。 | 執行下列命令,將部署資訊清單檔案套用至您的 Amazon EKS 叢集:
| DevOps 工程師 |
建立 Kubernetes 服務資訊清單檔案。 | 根據您的需求修改下列範例檔案,以建立服務資訊清單檔案。
重要請確定您已包含下列項目
| DevOps 工程師 |
部署 Kubernetes 服務資訊清單檔案。 | 執行下列命令,將服務資訊清單檔案套用至您的 Amazon EKS 叢集:
| DevOps 工程師 |
任務 | 描述 | 所需的技能 |
---|---|---|
記錄 Network Load Balancer 的名稱。 | 執行下列命令來擷取 Network Load Balancer 的名稱:
記錄 Network Load Balancer 的名稱,這是建立 AWS PrivateLink 端點的必要項目。 | DevOps 工程師 |
建立 AWS PrivateLink 端點。 | 登入 AWS 管理主控台,開啟 Amazon VPC 主控台,然後建立 AWS PrivateLink 端點。將此端點與 Network Load Balancer 建立關聯,這可讓客戶私下使用應用程式。如需詳細資訊,請參閱 Amazon VPC 文件中的 VPC 端點服務 (AWS PrivateLink)。 重要如果消費者帳戶需要存取應用程式,則必須將消費者帳戶的 AWS 帳戶 ID 新增至 AWS PrivateLink 端點組態的允許主體清單。如需詳細資訊,請參閱 Amazon VPC 文件中的新增和移除端點服務的許可。 | 雲端管理員 |
建立 VPC 端點。 | 在 Amazon VPC 主控台上,選擇端點服務,然後選擇建立端點服務。為 AWS PrivateLink 端點建立 VPC 端點。 VPC 端點的完整網域名稱 (FQDN) 會指向 AWS PrivateLink 端點的 FQDN。這會為 DNS 端點可存取的 VPC 端點服務建立彈性網路界面。 | 雲端管理員 |