虚拟专用云(VPC)是AWS中的隔离网络环境。

AWS VPC可完全控制网络配置,包括:

  • IP地址范围
  • 子网
  • 路由表
  • 网络网关

对于SystemLink Enterprise部署,正确配置的VPC对于安全性、可扩展性和网络隔离至关重要。

配置VPC在私有子网中隔离计算和存储基础架构,与面向Internet的网关和负载平衡器分离。该配置遵循云安全最佳实践,并确保敏感工作负载无法从互联网直接访问。

关于架构的一般参考,见AWS SystemLink Enterprise Kubernetes架构图

子网架构

使用公共子网和私有子网配置VPC,将面向Internet的组件与内部基础架构分开。

在没有直接访问Internet的私有子网中部署下列组件:

  • EKS集群节点:托管SystemLink Enterprise Pod(包括Web服务、Web应用程序和支持基础架构)的工作器节点。
  • 数据库:PostgreSQL的Amazon RDS实例,或自管理的数据库实例。
  • 用于S3的VPC端点:使用VPC网关端点使私有子网直接访问Amazon S3,而无需通过互联网发送流量。

在可访问Internet网关的公共子网中部署下列组件:

  • 应用程序负载平衡器(ALB):用于SystemLink Web应用程序和API的HTTPS流量的面向Internet的负载平衡器
  • 网络负载平衡器(NLB):Salt Master流量的TCP负载平衡器(端口4505和4506)
  • NAT网关:启用私有子网中资源的出站Internet访问。

CIDR块规划

规划VPC CIDR块,确保有足够的IP地址用于SystemLink Enterprise和未来的增长。

  • 推荐的VPC大小:/16 CIDR块(65,536个IP地址)提供了扩展灵活性
  • 最小VPC大小:/20 CIDR块(4,096 IP地址),适用于中小型部署

根据下列考虑因素分配子网:

  • EKS节点的私有子网:基于最大预期节点数的大小。每个EKS节点需要子网CIDR的一个IP地址。
  • Pod专用子网:如果使用自定义网络或VPC CNI自定义模式,请为Pod IP地址分配额外的子网。每个pod需要自己的IP地址。
    • 首先使用默认的VPC CNI配置,即pod共享节点子网,除非对pod级网络隔离有具体要求。
    • 仔细监控IP使用率。根据EC2实例类型,每个节点可使用10-100多个IP地址。
    • 规划增长。确保子网大小可支持工作负载的显著扩展。
  • 公共子网:较小的分配(例如,/24)对于负载平衡器和NAT网关就足够了。
  • 多AZ部署:在至少两个可用性区域中创建子网对(公共/私有),以实现高可用性。
表 53. CIDR分配范例(使用10.0.0.0/16的VPC)
子网类型 可用性区域 CIDR块 可用IP
私有(EKS节点) us-east-1a 10.0.0.0/19 8,192
私有(EKS节点) us-east-1b 10.0.32.0/19 8,192
私有(数据库) us-east-1a 10.0.64.0/24 256
私有(数据库) us-east-1b 10.0.65.0/24 256
公共 us-east-1a 10.0.128.0/24 256
公共 us-east-1b 10.0.129.0/24 256
备注 AWS在每个子网中预留前四个IP地址和最后一个IP地址。计算可用地址时进行相应的规划。

安全最佳实践

配置用于SystemLink Enterprise的VPC时,请遵循下列安全最佳实践:

  • 计算和存储不能直接访问Internet:所有EKS节点、数据库和内部服务必须位于没有Internet网关路由的私有子网中。
  • 流量隔离:Internet流量流经Internet、公共ALB/NLB、私有Kubernetes Ingress Controller(私有子网)以及私有SystemLink服务。
  • 通过NAT出站Internet:在公共子网中使用NAT网关为私有子网资源提供出站Internet访问。在每个可用性区域部署一个NAT网关以实现高可用性。
  • VPC端点:将VPC端点用于AWS服务(S3),以避免Internet路由并降低数据传输成本。
  • 安全组:将安全组配置为仅允许组件间的必要通信。使用最小权限原则。

可用性区域注意事项

跨多个可用性区域部署SystemLink Enterprise以实现高可用性和容错:

  • 最低部署:至少使用两个可用性区域,每个区域都有子网对。
  • EKS节点组:跨可用性区域分布工作站节点。
  • Database Multi-AZ:启用RDS PostgreSQL和DocumentDB的多AZ部署。
  • 负载平衡器分配:配置ALB和NLB在多个可用性区域的子网间分配流量。