跳转到主要内容
Chinese, Simplified

在AWS云上进行生产等级K8S集群部署


这些AWS CloudFormation模板和脚本会在AWS私有VPC环境中自动根据您选择的配置设置一个灵活,安全,容错的Kubernetes集群。该项目的主要目的是:简单,轻松,无脚本,轻松地一步部署Kubernetes环境。

我们提供两个具有相同基础AWS VPC拓扑的部署版本:

  • 全面:容错,生产级架构(多主站,多节点,NAT网关),
  • 占用空间小:单个主机,单个NAT实例,单个节点部署(用于测试,演示,第一步)

Kubernetes Operations(“ kops”)项目和AWS CloudFormation(CFN)模板与引导脚本一起使用,有助于自动化整个过程。最终结果是具有100%Kops兼容性的100%Kubernetes集群,您可以从堡垒主机,通过OpenVPN或通过AWS ELB端点使用HTTPS API进行管理。

该项目将重点放在安全性,透明性和简单性上。本指南主要为计划在AWS上实现其Kubernetes工作负载的开发人员,IT架构师,管理员和DevOps专业人士创建。

完整规模架构

One-Click launch CloudFormation stack: Full scale

部署的资源

 

  • 一个VPC:3个不同可用区中的3个私有子网和3个公共子网,通往S3和DynamoDB的网关类型私有链路路由(免费),
  • 每个3个可用区中的每个公用子网中的三个NAT网关,
  • 每个可用区的私有子网中AutoScaling组(单独的ASG)中的三个自我修复的Kubernetes Master实例,
  • 一个AutoScaling组中的三个Node实例,遍及所有可用区,
  • 1个可用区的公共子网中的一个自我修复堡垒主机,
  • 四个弹性IP地址:3个用于NAT网关,1个用于堡垒主机,
  • 一个内部(或公共:可选)ELB负载平衡器,用于通过HTTPS访问Kubernetes API,
  • 堡垒主机和Kubernetes Docker Pod的两个CloudWatch Logs组(可选),
  • 一个Lambda函数可通过AWS SSM正常拆除
  • 两个安全组:1个用于堡垒主机,1个用于Kubernetes主机(主服务器和节点),
  • 堡垒主机,K8s节点和主控主机的IAM角色,
  • 一个用于Kops状态存储的S3存储桶,
  • 一个用于VPC的Route53专用区域(可选)


小规模架构

One-Click launch CloudFormation stack: Small footprint

部署的资源

 

  • 一个VPC:3个不同可用区中的3个私有子网和3个公共子网,通往S3和DynamoDB的网关类型私有链路路由(免费),
  • 一个可用区的专用子网中的一个自我修复的Kubernetes Master实例,
  • AutoScaling组中的一个Node实例,遍及所有可用区,
  • 1个可用区的公共子网中的一个自我修复堡垒主机,
  • 堡垒主机是专用子网的NAT实例路由器,
  • 四个弹性IP地址:3个用于NAT网关,1个用于堡垒主机,
  • 一个内部(或公共:可选)ELB负载平衡器,用于通过HTTPS访问Kubernetes API,
  • 堡垒主机和Kubernetes Docker Pod的两个CloudWatch Logs组(可选),
  • 一个Lambda函数可通过AWS SSM正常拆除
  • 两个安全组:1个用于堡垒主机,1个用于Kubernetes主机(主服务器和节点)
  • 堡垒主机,K8s节点和主控主机的IAM角色
  • 一个用于Kops状态存储的S3存储桶,
  • 一个用于VPC的Route53专用区域(可选)


如何建立集群?


https://aws.amazon.com上注册一个AWS账户
选择您喜欢的部署类型:

创建群集(通过堡垒主机)持续约10-15分钟,请耐心等待。

  • 遵循部署指南中的分步说明,连接到Kubernetes集群。


要自定义部署,您可以为Kubernetes集群和堡垒主机选择不同的实例类型,选择工作节点数,API端点类型,日志记录选项,OpenVPN安装,插件。

有关详细说明,请参阅部署指南。

创建群集(通过堡垒主机)持续约10分钟,请耐心等待。

创建clutser之后,只需通过SSH连接到堡垒主机,即可立即使用“ kops”,“ kubectl”和“ helm”命令,无需任何额外步骤!

日志


可选:如果您在模板选项中选择,则所有容器日志都将发送到AWS CloudWatch Logs。在这种情况下,本地“ kubectl”日志无法通过API调用在内部使用(例如kubectl logs ...命令:“守护程序的错误响应:已配置的日志记录驱动程序不支持读取”)请检查AWS CloudWatch / Logs / K8s *用于容器日志。

抽象论文


请查看此摘要文件,以了解此解决方案的高级细节。

参考资料

原文:https://tc2.hu/en/blog/production-grade-kubernetes-cluster-on-aws

本文:http://jiagoushi.pro/production-grade-kubernetes-cluster-aws

讨论:请加入知识星球或者微信圈子【首席架构师圈】

Article
知识星球
 
微信公众号
 
视频号