kubernetes系统的需求
- 从单体到微服务
单体服务问题:
- 单体应用组件耦合性强, 单个组件的修改都需要部署整个应用
- 系统复杂度高
- 拓展困难, 垂直拓展成本高, 水平拓展对于某些组件比如数据库不可行导致整个应用不能拓展
因此将大型单体应用拆分成小的可独立部署的微服务组件, 每个服务以独立进程运行, 并通过简单且定义良好的接口与其他微服务通信
- 每个微服务得以以最适合的开发语言实现
- 各微服务得以独立开发部署, 耦合性低
- 扩容容易, 不能扩容组件垂直拓展, 能扩容的组件水平拓展
微服务化带来的问题:
- 随着服务数量上升, 部署及配置更难困难
- 跨服务调用, 调试代码, 定位异常困难
- 服务环境需求有差异, 容易出现依赖冲突