zoukankan      html  css  js  c++  java
  • 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 是一个完整的微服务基础设施解决方案,并且背后有谷歌的支持,社区异常活跃,成为了容器编排时代的标准事实。

  • 相关阅读:
    dirname,basename的用法与用途
    终极解决方案——sbt配置阿里镜像源,解决sbt下载慢,dump project structure from sbt耗时问题
    linux-manjaro下添加Yahei Hybrid Consola字体
    Idea无法调出搜狗等中文输入法
    Spring 源码学习系列
    BF算法
    Mybatis Mapper接口是如何找到实现类的-源码分析
    Lua脚本在redis分布式锁场景的运用
    GO语言一行代码实现反向代理
    SpringMVC源码分析-400异常处理流程及解决方法
  • 原文地址:https://www.cnblogs.com/jasonwu/p/13886942.html
Copyright © 2011-2022 走看看