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

  • 相关阅读:
    (转+原)android获取系统时间
    (转+原)VC编译错误:uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义
    android的reference table的问题
    (原+转)Eclipse中Android调用OpenCv
    JAVA IO 字符流 FileReader FileWriter
    JAVA IO
    JAVA FIle类
    JAVA 泛型
    JAVA Collection工具类 Collections
    JAVA Map子接口之 HashMap
  • 原文地址:https://www.cnblogs.com/jasonwu/p/13886942.html
Copyright © 2011-2022 走看看