作为评估的一部分,我已经尝试设置 kubernetes 一个星期了,但我只能找到
- 极其复杂的手动解决方案已经过时或完全失效
- 打破大量最佳实践的极其简单的解决方案
- “在一个盒子里了解 Kubernetes 集群”
我的基本要求是:
- 我有 AWS
- 我已经创建了 VPC、子网和对等连接
- 我需要能够在适当的 VPC 中为每个环境构建一个集群
- Ubuntu 16.04
- 我应该控制 SG 和实例(terraform + ansible)
- 绝对没有单点故障。
- 我不想要通过在主控上方添加工具或控制器来创建不必要的层的解决方案。(为什么?!!)
- 没有明显的安全漏洞
我尝试了几个解决方案,但都失败了,需要#7
kubeadm(中断 #6、#7)
- 我尝试了这个,因为这应该是使用现有基础设施的合理解决方案。
- 我能够让一个有 1 个主节点和 2 个节点的集群运行,但它似乎没有完全运行(kubernetes-dashboard 无法访问)
- 最后,由于文档指出主节点无法实现 HA,因此该工具本身也不推荐用于生产。
juju / conjure-up 与“规范的 kubernetes” (中断 #2、#3、#5、#6、#7、#8)
- 不允许指定 VPC。无需管理 SG、实例,通过堡垒主机工作。
- 它实际上在 ec2-classic 中创建了实例……?
- AWS 中的实例命名很糟糕(无法分辨哪个是 masters、哪个是 etcd、哪个是 ??)
- 3 个工作集群有 15 个安全组,其中 9 个完全是空的?
- conjure-down 失败,提示“NoneType”对象没有属性“controller”
- 它在“控制机器”中创建了一个单点故障
- INGRESS TCP 22 0.0.0.0/0 <- 我要哭了(这就是为什么 ec2-classic 几年前就消失了)
答案1
试用科普斯- 它支持Terraform 输出。它应该可以满足您的其他要求(尽管有些要求,例如没有单点故障,可能需要更改默认配置)。