如何在AWS上部署Kubernetes集群

今天的客座文章是由Colin Hom撰写,Colin Hom是CoreOS的基础设施工程师。CoreOS在CoreOS Linux,Tectonic和Quay上面安全运行容器。这篇文章咱们来分享kube-aws这个工具,讨论如何在AWS上部署Kubernetes集群。html

在CoreOS,咱们尝试将Kubernetes大规模部署到生产中。今天咱们来分享一个工具:kube-aws,它能够轻松地在AWS上面部署Kubernetes。kube-aws是一个用来部署可监测、可再生的kubernetes集群到AWS上的工具,目前被CoreOS用来建立生产集群。git

咱们如今将Kubernetes组件放到一块儿的方式比较手动。可是,有了这个利器,Kubernetes就能够经过流水线打包来节省时间,同时将程序间的相互影响减到最小,快速建立可用于生产环境的部署。
简单模版系统只是用来生成集群配置,来做为一套版本可控、可监测和可重部署的声明性配置模版。因为整个供应是由AWS CloudFormation和cloud-init提供,因此在你这端无需外部配置管理工具。github

查看最新版本的kube-aws,点击:这里,它支持Kubernetes1.2.x。为了让你的集群运行起来,点击查看文档:这里安全

为何选择kube-aws?由于它的安全性,可监测性和再生性

kube-aws以这三个目标做为初衷来设计的。工具

安全性:TLS资源在嵌入CloudFormation JSON以前,是经过AWS的KMS加密的。经过为KMS密钥独立管理IAM 协议,操做者能够分开访问TLS secrets和CloudFormation。加密

可监测的:kube-aws是围绕集群资源的概念建立。这些配置和这些证书表明的是对整个集群的描述。由于KMS是用来给TLS secrets加密,你也能够随时在版本控制中检查未加密的堆栈JSON。 spa

再生性:-export选项将参数化的集群打包到到单个的JSON文件里,由这个文件定义CloudFormation堆栈。若是须要的话,这个文件能够直接进行版本控制,并经过已有的配置工具直接提交到CloudFormation API。设计

如何经过kube-aws开始

在这个基础之上,kube-aws实现了一个功能,可让Kubernetes在AWS上面配置得更加易于管理,也更加灵活。如下是一些例子。3d

Route53 整合:Kube-aws能够管理你的集群DNS记录的配置过程。版本控制

cluster.yaml
clipboard.png

现有VPC支持:部署你的集群到现有的VPC上面。

cluster.yaml

clipboard.png

验证:kube-aws支持cloud-init和CloudFormation定义验证,以及任意集群能够整合的外部资源。举个例子,这是一个拼错参数的cloud-config:
userdata/cloud-config-worker

clipboard.png

clipboard.png

开始以前,查看kube-aws文档:这里

后续工做

使用kube-aws的目标就是令产品配置准备就绪。在咱们在AWS上面将kube-aws投入产品使用的今天,这个项目在1.0版本以前,还有不少地方须要改进。

容错:AWS上的Kubernetes是个对容错和自愈来讲很强大的平台。在接下来的几周里,kube-aws会迎接一个新的挑战:控制面板以及全部其它的完善。

无宕机更新:运用正确的实例替换策略,能够无宕机、更新CoreOS节点和Kubernetes组件,减小相关依赖性。

了解更多关于Kubernetes,可关注CoreOS Fest Berlin:这里。 ——Colin Hom,CoreOS基础设施工程师

(若是须要转载,请联系咱们哦,尊重知识产权人人有责)

相关文章
相关标签/搜索