一、什么是微服务
微服务是一种用于部署应用的架构方案,它将一个应用拆分为多个核心功能,每个功能都可以称为一个微服务,可以用来独立进行开发构建部署测试,每个服务之间相互独立,不会相互影响。
二、微服务架构
优点:
<1> 利用微服务的独立开发、部署、升级,交付周期缩短,测试运维成本下降
<2>低成本扩容,弹性伸缩,适应云环境
缺点:
<1>分布式系统的复杂性,服务间的依赖,服务太多,治理成本,维护成本高
二、微服务与K8S
微服务提出这个问题,采用分而治之的方式,但是至于如何去管理这些服务,整个架构,这个事情就交给了K8S去管理。
1. 微服务的理念
<1> 服务注册与发现(服务间便捷的调用):在K8S中,使用的是kube-dns,K8S将service的名称当成域名注册到kube-dns中,通过service就可以访问到其提供的服务
<2>进程间通信(服务间调用可以通)
<3>负载均衡:
service通过proxy对pod的负载均衡,会将请求通过设置而分发到不同的pod中,Kube-proxy的默认模式是iptables,它支持相当复杂的基于规则的IP管理
ingress中可以配置规则去实现负载均衡
<4>分布式配置中心
K8S通过ConfigMap、sercert去做,可以将这些变量在pod运行时加入pod