如何在AWS上部署Kubernetes?

时间:2017-03-02 18:57:42

标签: amazon-web-services kubernetes

我想知道人们如何在AWS中部署生产级别的Kubernetes集群,更重要的是,他们如何选择他们的方法。

对于Debian,Ubuntu,CentOS和RHEL,k8s documentation指向kops,对于CoreOS / Container Linux指向kube-aws。在这些选择中,不清楚如何选择其中一个。 CoreOS似乎是最引人注目的选择,因为它专为容器工作负载而设计。

但等等,还有更多。

bootkube似乎是CoreOS部署技术的下一次迭代,并且在roadmap上包含在kube-aws中。我应该等到kube-aws使用bootkube吗?

Heptio最近宣布在AWS中部署k8s Quickstart architecture。这是最新的方法,因此可能是最不成熟的方法,但似乎确实从AWS内部获得了吸引力。

最后kubeadm是一件事,我不确定它适用于所有这些。

我可能还缺少更多方法。

考虑到具有重叠意图的选项的数量,选择前进路径非常困难。我对概念验证不感兴趣。我希望能够部署一个安全,高度可用的集群供生产使用,并能够随着时间的推移升级集群(主机操作系统,etcd和k8s系统组件)。

你选择了什么,你是如何决定的?

1 个答案:

答案 0 :(得分:2)

我说要选择符合您需求的任何内容(另请参阅Picking the right solution)...

可能是:

  • 群集设置的速度
  • 在现有工具链中集成
    • e.g。 kops与Terraform集成,可能非常适合某些人
  • 您团队/公司的经验/ ......
    • e.g。您对相关的Linux发行版感到满意吗
  • 工具本身的成熟度
    • 有些工具非常alpha,你愿意扮演早期适配器的角色吗?
  • 能够在Kubernetes版本之间升级
    • kubeadm在他们的议程中有这个,其他一些人更喜欢扔掉集群而不是升级
  • 需要集成到外部工具(监控,日志记录,身份验证,...)
  • 支持的云提供商

根据您的具体要求,我选择了Heptio或kubeadm方法。

  • Heptio如果你能忍受给定的约束(例如预定义的操作系统)
  • kubeadm如果您需要更多灵活性,使用kubeadm完成的所有操作都可以转移到其他云提供商

我的列表中较低的AWS其他选项:

  • Kubernetes the hard way - 使用它可能是设置生产群集的唯一真正方法,因为这是您可以完全理解系统的每个移动部分的唯一方法。在列表中较低,因为通常任何工具的结果可能都足够,即使是生产。
  • kube-up.sh - 已被社区弃用,因此我不会将其用于新项目
  • kops - 我的团队有一些奇怪的经历,这似乎是由于我们(现有的VPC)的(自定义)需求,这就是为什么它在我的列表中更低 - 它对于使用Terraform的环境来说,它将是#1。
  • bootkube - 在我的列表中较低,因为它对CoreOS的限制
  • Rancher - 有趣的工具链,对于单个群集来说似乎太多了

Offtopic:如果你没有 在AWS上运行,我也总是考虑在GCE上运行生产工作负载,因为这是一个管理良好的平台而不是而不是你自己建立的东西。