8.Kubernetes 的微服务架构设计

通过轻量级的容器隔离技术,kubernetes 借助微服务的特性以及 docker 实现了平台的自动化管理能力。

现在我们尝试重新从微服务框架的角度和 Kubernetes 的组件设计进行对比,可以发现 Kubernetes 的设计也是遵循微服务架构的设计原理:

  • Kubernetes 中的核心要素 Service 提供了一套简化的服务代理和发现机制,天然适应微服务架构。
  • Kubernetes 具备微服务框架的很多特征:
    • Kubernetes 拥有统一的服务接入端口;
    • Service 的容错性保证核心服务的连续性;
    • Service 的负载均衡保证核心服务的高可用;
    • Service 的限流和降级措施保证核心服务的稳定性;
    • Kubernetes 具备日志和监控管理以及统一的配置管理。

下表表示的是微服务技术架构组件和 Kubernetes 框架中的模块表的映射关系:

微服务架构组件 Kubernetes 框架中的模块
服务发现和服务注册 Kubernetes 框架内嵌 Service 模块和分布式 DNS
API 网关 Ingress,简单路由功能
容错限流 Kubernetes 框架内嵌模块、根据服务实例进行控制、ServiceMesh/Probe/HealthCheck
监控告警 Kubernetes 框架内嵌模块
指标监控中心 Prometheus、Cadvisor、DaemonSet 部署监控 Agent
统一日志中心 Fluentd & ES、DaemonSet 部署日志 Agent
认证授权 Kubernetes 框架内嵌模块
配置管理 Kubernetes 框架内嵌模块 Configmap、Secrets
服务容器 无状态对应 Deployment,有状态对应 StatefulSet
负载均衡 简单负载均衡,基于 Iptables Roundrobin
服务部署/弹性伸缩 Kubernetes 框架内嵌模块,Deployment 的 Replicas

可以发现 Kubernetes 基本上全面覆盖了我们对于微服务的关注点,并且 Kubernetes 是一个完整的微服务基础设施解决方案,并且背后有谷歌的支持,社区异常活跃,成为了容器编排时代的标准事实。

相关文章