首页 > 云计算 > Docker/K8 > 云原生场景下,容器化和微服务如何组CP?
云原生1.0定义容器、微服务、不可变基础设施和声明式API,其中容器化虽然是微服务运行的最佳载体,但是以何种方式组CP,这可能出乎我们的想想:
以上几种方式其实在容器化建设场景中真实存在的,因为架构是随着技术的发展不断演进的。例如注册中心->云原生网关->ServiceMesh,容器因生命周期发生IP不断变化,可通过注册中心、Endpoint Controller 来检测并更新,但是众多架构中总会特殊的一种:既没有注册中心又没有支持云原生场景的网关或其他兼容性组件,但好在微服务+CMDB+网关可以实现服务的可触达。
这种方式是如何微服务的访问呢?
其中CMDB在整条访问链路中起着承上启下的作用,在传统架构中这是CMDB发挥重大作用的数据支撑场景之一,可谓是运维辛苦付出得到的福报之一啊!
正当我们欢天喜地送走传统微服务架构,锣鼓喧天鞭炮齐鸣的迎来云原生架构,以为终于可以享受容器编排带给我们的便利时,岂料曾使我们洋洋得意的CMDB成为了我们的心结,运维是否要亲手革了CMDB的命?
为什么会出现这种情况呢?最大的问题就在于容器生命周期过程中的IP变化以及underlay/overlay网络选型:
诚然,我们在努力培养CMDB在云原生场景中生存的土壤,但是传统架构下依赖CMDB Agent的自动采集上报信息的能力将再一次被诟病,因为容器的生命周期变化如此之频繁,这让Agent的能力大打折扣!但在应用容器化过程中,我们不太可能一下子就推翻当前使用多年且非完全兼容云原生的架构,只能是循序渐进平稳过渡,因此我们需要更开放性及发展性的眼光来重新寻找一个可行性方案。
当然,天无绝人之路!
既然underly网络可以使用业务网段,因此我们的希望之火将被重新点燃。在经历一番探讨与交流后,关于容器化和CMDB的CP组合方案,我们有了新方案!
上图是容器生命周期的过程,其中有几个关键信息:
那么K8S中的这几种原生特性,是如何让容器化和CMDB结合呢?
与CMDB Agent采集主机数据上报不同的是,Pod在启动过程中:
此种方案的优点是方案可行,但是在实际联调过程中有以下几个关键点:
总结,受限于PostStart、PreStop的特性及便捷性,他们在给你带来可能性的同时也可能会束缚你前进的脚步!

❝Event 是集群中某个事件的报告,它一般表示系统的某些状态变化。Event 的保留时间有限,触发器和消息可能会随着时间的推移而演变。
❞
K8S集群支持事件查看,因此这种方案的几个关键信息点为:
这种方案的优势在于灵活可控,但集成难度也相应增加:
容器化进程中,CMDB式的CP可以在不改变当前架构的情况下兼容容器场景,这个错位CP虽然给我们的架构带来了时间和空间上的过渡,但是架构不易,要想改变现状还需要架构及解决方案等大佬们去统筹全局,而非一朝一夕能够完成!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70027825/viewspace-3008695/ ,如需转载,请注明出处,否则将追究法律责任。