交付Dubbo服务到K8S前言

WHAT:阿里巴巴开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 [1] Spring框架无缝集成。

WHY:用它来当作我们现实生产中的App业务,交付到我们的PaaS里

交付架构图

zk(zookeeper) :dubbo服务的注册中心是通过zk来做的,我们用3个zk组成一个集群,就跟etcd一样,有一个leader两个从,leader死了由其它来决定谁变成leader,因为zk是有状态的服务,所以我们放它放在集群外(红框外),集群内都是无状态的。

dubbo微服务 :在集群内通过点点点扩容(dashboard),即当有秒杀或者什么的时候就可以扩展,过了则缩容。

Git :开发把代码传到Git上,这里我们用gitee(码云)来做,也可以用GitHub来着,没什么区别

Jenkins :用Jenkins把Git的代码拉下来并编译打包成镜像,然后提送到harbor

OPS服务器(7-200机器) :然后将harbor的镜像通过YAML应用到k8s里,现在我们是需要些YAML文件,后面会用spinnaker来做成点点点的方式

笑脸(用户) :外部访问通过ingress转发到集群内的dubbo消费者(Web服务),然后就可以访问

最终目标 :实现所有事情都是点点点

梳理目前机器服务角色

主机名 角色 IP
HDSS7-11.host.com k8s代理节点1,zk1 10.4.7.11
HDSS7-12.host.com k8s代理节点1,zk1 10.4.7.12
HDSS7-21.host.com k8s运算节点1,zk3 10.4.7.21
HDSS7-22.host.com k8s运算节点2,jenkins 10.4.7.22
HDSS7-200.host.com k8s运维节点(docker仓库) 10.4.7.200
下一节:WHAT:主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。简单来说zookeeper=文件系统+监听通知机制。

WHY:我们的dubbo服务要注册到zk里,把配置放到zk上,一旦配置信息发生变化,zk将获取到新的配置信息应用到系统中。