kubernetes系统的需求

  1. 从单体到微服务

单体服务问题:

  • 单体应用组件耦合性强, 单个组件的修改都需要部署整个应用
  • 系统复杂度高
  • 拓展困难, 垂直拓展成本高, 水平拓展对于某些组件比如数据库不可行导致整个应用不能拓展

因此将大型单体应用拆分成小的可独立部署的微服务组件, 每个服务以独立进程运行, 并通过简单且定义良好的接口与其他微服务通信

  • 每个微服务得以以最适合的开发语言实现
  • 各微服务得以独立开发部署, 耦合性低
  • 扩容容易, 不能扩容组件垂直拓展, 能扩容的组件水平拓展

微服务化带来的问题:

  • 随着服务数量上升, 部署及配置更难困难
  • 跨服务调用, 调试代码, 定位异常困难
  • 服务环境需求有差异, 容易出现依赖冲突