首页 > 技术文章 > springCloud架构

ywsheng 2020-04-02 14:09 原文

SkyWalking zipkin  分布式链路追踪工具

用公钥加密的数据,只有对应的私钥才能解密;用私钥加密的数据,只有对应的公钥才能解密。

统一配置中心,例如:Apollo,Disconf

    1. 制作镜像(应用程序、运行环境、文件系统)
      基础镜像:Debian 或 应用程序的运行环境镜像
      应用程序:Go,Java,Python ....
      运行环境:不同的语言都需要有特定的运行环境(例如java需要jdk)
      文件系统:忽略

    2. 控制器管理Pod
      Deployment:无状态部署
      StatefulSet:有状态部署(MySQL、Mongodb、Redis ...)
      DaemonSet:守护进程部署
      Job & CronJob:批处理

    3. 暴露应用
      Service定义了Pod的逻辑集合和访问这个集合的策略,
      Service引入为了解决Pod的动态变化,提供服务发现和负载均衡,
      支持Cluster IP,NodePort以及LocalBalancer三种类型,
      Service的底层实现主要实现有iptables和ipvs两种网络模式,推荐ipvs,
      使用CoreDNS解析Service名称,
      通过Label关联Pod。

    4. 对外发布应用(ingress)
      通过Service关联Pod,
      基于域名访问,
      通过Ingress Controller实现Pod的负载均衡(支持TCP/UDP 4层和HTTP 7层)。
      最后在Ingress前面部署外网用户统一入口实现七层代理/四层转发(Nginx、HaProxy...)

    5. 日志采集
      Pod在运行的时候会产生应用日志,需要将其日志文件信息采集到统一的数据库中存储,然后从一个平台中展示
      易给开发查阅日志信息和错误日志信息,易于排查问题
      主流方案:FileBeat + ELK(高性能和解耦:+kafka)

    6. 监控
      不管是k8s集群Master还是Node,以及Pod,我们需要知道它们运行的具体状况,
      占用多少资源,剩余多少资源,就得通过监控的方式去实现。
      主流方案:Prometheus + Grafana + ...Export

推荐阅读