如何在AWS上部署安全,可审核和可复制的捕鱼大亨网络版集群

今天的来宾帖子是由以下机构的基础架构工程师Colin Hom撰写的 酷睿 ,该公司提供了Google的所有人基础设施(#GIFEE),并在CoreOS Linux,Tectonic和Quay上安全地运行了全球的容器。

加入我们 柏林CoreOS Fest,开源分布式系统会议,并了解有关CoreOS和捕鱼大亨网络版的更多信息。

在CoreOS上,我们致力于大规模生产捕鱼大亨网络版。今天,我们很高兴分享一个工具,该工具使在Amazon Web Services(AWS)上轻松部署捕鱼大亨网络版变得轻而易举。 Kube-aws是用于将可审核和可复制的捕鱼大亨网络版群集部署到AWS的工具,CoreOS当前使用它来启动生产群集。

今天,您可能会以更手动的方式将捕鱼大亨网络版组件组合在一起。借助此有用的工具,捕鱼大亨网络版以简化的软件包提供,以节省时间,最小化相互依赖性并快速创建可用于生产的部署。

利用一个简单的模板系统来生成集群配置,作为一组声明式配置模板,这些模板可以进行版本控制,审计和重新部署。由于整个供应是通过 AWS CloudFormation 和cloud-init,您无需再使用外部配置管理工具。包括电池!

要跳过讨论并直接进入项目,请签出 最新版本的kube-aws,它支持捕鱼大亨网络版1.2.x。为了使您的集群运行, 查看文档.

为什么要选择kaw-aws?安全性,可审核性和可重复性

设计Kube-aws时要牢记三个主要目标。

安全 :TLS资产通过 AWS密钥管理服务(KMS) 嵌入到CloudFormation JSON中之前。通过管理 IAM政策 对于KMS密钥,操作员可以将对CloudFormation堆栈的操作访问与对TLS机密的访问分离开。

可审核的 :kube-aws围绕集群资产的概念构建。这些配置和凭据资产代表了群集的完整描述。由于KMS用于加密TLS资产,因此您也可以随时将未加密的堆栈JSON检查到版本控制中!

可重现 - 出口 选项将您的参数化集群定义打包到单个JSON文件中,该文件定义了CloudFormation堆栈。可以根据需要控制此文件的版本,并通过现有部署工具将其直接提交给CloudFormation API。

如何开始使用kube-aws

在此基础之上,kube-aws实现了使AWS上的捕鱼大亨网络版部署更易于管理和更灵活的功能。这里有些例子。

Route53集成 :作为置备过程的一部分,Kube-aws可以管理您的群集DNS记录。

cluster.yaml

externalDNSName: my-cluster.kubernetes.coreos.com

createRecordSet: true

hostedZone: kubernetes.coreos.com

recordSetTTL: 300

现有的VPC支持 :将群集部署到现有的VPC。

cluster.yaml

vpcId: vpc-xxxxx

routeTableId: rtb-xxxxx

验证方式 :Kube-aws支持对cloud-init和CloudFormation定义以及集群堆栈将与之集成的任何外部资源的验证。例如,这是一个带有错误拼写参数的云配置:

userdata / cloud-config-worker

#cloud-config

coreos:

  flannel:  
    interrface: $private\_ipv4  
    etcd\_endpoints: {{ .ETCDEndpoints }}

$ kube-aws验证

> Validating UserData...
错误:cloud-config验证错误:
UserDataWorker:第4行:警告:无法识别的键“接口”

首先,请查看 kube-aws文档.

未来的工作

与往常一样,kube-aws的目标是使部署做好生产准备。虽然我们今天在AWS上的生产中使用kube-aws,但该项目是1.0之前的版本,并且在很多领域都需要kube-aws的发展。

容错能力 :在CoreOS,我们相信AWS上的捕鱼大亨网络版是用于容错和自我修复部署的强大平台。在接下来的几周内,kube-aws将面临新的挑战: 混沌猴 –控制飞机和所有!

零停机时间更新 :更新CoreOS节点和捕鱼大亨网络版组件无需停机,也无需与正确的实例替换策略相互依赖。

A github问题 跟踪实现此目标的工作。我们希望看到您通过提交问题或直接做出贡献来参与该项目。

了解有关捕鱼大亨网络版的更多信息并在以下网站见社区 柏林CoreOS Fest -2016年5月9日至10日

– Colin Hom,CoreOS基础架构工程师