声明:本文素材是FOSSASIA上的演讲内容,题目和演讲者如下(两个作者不是红帽的员工)。演讲PPT仅代表原作者观点,大魏只是针对这个PPT进行技术解读。


大比拼: 各家K8S多云方案_java

大比拼: 各家K8S多云方案_java_02

现在K8S多云方案都一致强调gitops。其架构如下:

大比拼: 各家K8S多云方案_java_03

实际上Ansible Tower与Terraform一起使用,不仅可以实现gitops,还可以打通devops,如下图所示:

大比拼: 各家K8S多云方案_java_04

大比拼: 各家K8S多云方案_java_05


关于K8S多云技术哪家强,先看PPT中的对比表格:

上图认为最成熟(最右边一列3星)的两个K8S多云方案是红帽的ACM和Terraform + Ansible VaultTower (AWX) + Vault。当然,上图更推崇第二种方案。Vault是用来安全的存储秘密信息的工具,提供了对Token,密码,证书,API key等的安全存储(key/value)和控制功能。


从红帽售技术人员角度看,目前ACM的功能的迅速增强,可以实现实现对多OpenShift/K8S集群做统一的监控、应用部署、跨集群的应用关系可视化展现、快速的/详细的可视化审计应用程序和集群的配置信息、内置CIS遵从性策略和审计检查等。


我们接下来还是看第二种方案的实现逻辑。


K8S多集群分为集权和分权两个层面:

这两个概念机器翻译如下:

大比拼: 各家K8S多云方案_java_06

下图是第二种方式的工作模式:


大比拼: 各家K8S多云方案_java_07

上图实现的是:

1.多K8S集群的部署/管理/升级;

2.监控与告警

3.部署/管理/升级 namespace、安全、app。


而在1和3中,Ansible Tower都出于比较核心的位置。管理员先操作Ansible,由ansible配置istio、触发helm实现3;ansible触发vault、terraform实现1。也就是说,在多云操作K8S的任务,最终由Terraform实现。



大比拼: 各家K8S多云方案_java_08

如上图所示,在创建环境、创建集群、配置集群时,也是管理员先与ansible tower对接。


大比拼: 各家K8S多云方案_java_09


上图从应用管理员、Dev/User两个角度展现了工作模式。


将图放大。

下图中,OpenShift集群的配置和变更是由terraform实现。但任务的发起、包括对Consul的配置、拉取代码,是由Ansible Tower完成的。

大比拼: 各家K8S多云方案_java_10

在下图中,代码的拉取是由Ansible Tower完成的。OpenShift上应用的管理,是由Ansible Tower调用Helm完成的。

大比拼: 各家K8S多云方案_java_11

大比拼: 各家K8S多云方案_java_12