使用 AWS PrivateLink 和网络负载均衡器在 Amazon EKS 上私密访问容器应用程序
Kirankumar Chandrashekar,Amazon Web Services
摘要
此模式介绍如何在网络负载均衡器之后的 Amazon Elastic Kubernetes Service (Amazon EKS)上私有托管 Docker 容器应用程序,以及如何使用 AWS PrivateLink 访问该应用程序。然后,您便可以使用专用网络安全地访问 Amazon Web Services (AWS) Cloud 上的服务。
运行 Docker 应用程序的 Amazon EKS 集群(前端有网络负载均衡器)可与虚拟私有云(VPC)端点关联,以便通过 AWS PrivateLink 进行访问。然后,可以使用其他 VPC 的 VPC 端点来与其他 VPC 共享该 VPC 端点服务。
此模式描述的设置是在 VPC 和 AWS 账户之间共享应用程序访问权限的安全方法。它不需要特殊的连接或路由配置,因为使用者和提供商账户之间的连接位于全球 AWS 主干网上,不会遍历公共互联网。
先决条件和限制
先决条件
Docker
,已在 Linux、macOS 或 Windows 上安装并配置。 在 Docker 上运行的应用程序。
一个活跃的 AWS 账户。
AWS 命令行界面(AWS CLI)版本 2,已在 Linux、macOS 或 Windows 上安装并配置。
具有标记的私有子网并配置为托管应用程序的现有 Amazon EKS 集群。有关更多信息,请参阅 Amazon EKS 文档中的子网标记。
Kubectl,已安装并配置为访问 Amazon EKS 集群上的资源。有关更多信息,请参阅 Amazon EKS 文档中的安装 kubectl 。
架构

技术堆栈
Amazon EKS
AWS PrivateLink
网络负载均衡器
自动化和扩缩
可以在基于 Git 的存储库上跟踪和管理 Kubernetes 清单,并在 AWS CodePipeline 中使用持续集成和持续交付(CI/CD)进行部署。
您可以使用 AWS CloudFormation 通过基础设施即代码(IaC)创建此模式。
工具
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 工程师 |
| 任务 | 描述 | 所需技能 |
|---|---|---|
记录网络负载均衡器的名称。 | 运行以下命令来检索网络负载均衡器的名称:
记录网络负载均衡器的名称,这是创建 AWS PrivateLink 端点所必需的。 | DevOps 工程师 |
创建 AWS PrivateLink 端点。 | 登录 AWS 管理控制台,打开 Amazon VPC 控制台,然后创建 AWS PrivateLink 端点。将此端点与网络负载均衡器相关联,这使得应用程序可供客户私下使用。有关更多信息,请参阅 Amazon VPC 文档中的 VPC 端点服务(AWS PrivateLink)。 重要如果消费者账户需要访问应用程序,则必须将消费者账户的 AWS 账户 ID 添加到 AWS PrivateLink 端点配置的允许主体列表中。有关更多信息,请参阅 Amazon VPC 文档中的添加和删除端点服务的权限。 | 云管理员 |
创建 VPC 端点。 | 在 Amazon VPC 控制台中,选择端点服务,然后选择您的端点服务。为 AWS PrivateLink 端点创建 VPC 端点。 VPC 端点的完全限定域名 (FQDN) 指向 AWS PrivateLink 端点的 FQDN。这将创建一个 DNS 端点可以访问的 VPC 端点服务的弹性网络接口。 | 云管理员 |