

GitHub
:https://github.com/spring-cloud/spring-cloud-kubernetes
“Spring Cloud Kubernetes
提供使用Kubernetes
原生服务的Spring Cloud
公共接口实现。此代码仓库中提供的项目是促进在Kubernetes
中运行的Spring Cloud
和Spring Boot
应用程序的集成“,这是官方的介绍。
了解Spring Cloud Alibaba
的朋友就很容易理解这句话。简单说,Spring Cloud Alibaba
就是为快速搭建集成Dubbo
、Nacos
等阿里开源的生态服务的微服务项目提供的脚手架。而Spring Cloud Kubernetes
就是帮助大家更快的搭建使用Kubernetes
原生服务的微服务项目,并与Spring Cloud
集成。
比如使用Kubernetes
的原生etcd
服务实现服务的发现与注册、配置中心,而不需要使用第三方服务注册中心、配置中心。
其实,在社区的贡献下,Dubbo
也提供了使用etcd
做服务注册中心和配置中心的支持,但估计很少人会去使用。
Dubbo
的服务注册、发现、调用都依赖IP
,且Dubbo
的服务注册是以接口为维度的,而不是以进程为维度,因此Dubbo
的服务注册发现模型与Kubernetes
的服务注册发现模型不是很匹配,这些都使得将一个Dubbo
项目迁移至Kubernetes
容器变得困难,需要对原有Dubbo
项目作出一些改变,这也是我们在做新项目技术选型时需要考虑的问题。好消息是,Dubbo
将在3.x
版本提供服务级别的注册和发现功能,Dubbo也在向云原生靠拢。

上图为Spring Cloud Kubernetes
的源码框架截图,后续我们将会使用到的模块有:实现服务注册和发现的discovery
模块、实现配置中心的config
模块。
spring-cloud-kubernetes
的1.1.3.RELEASE
对应spring cloud
版本为Hoxton.SR5
。Spring Cloud
每个版本依赖的Spring Boot
版本,官网都有给出说明。关于版本,我们也可以从pom.xml
文件中获取到。

在了解Spring Cloud Kubernetes
是什么之后,我们再讨论下为什么要选择Spring Cloud Kubernetes
?
选择Spring Cloud Kubernetes
意味着我们想要将服务部署到Kubernetes
集群,Spring Cloud Kubernetes
为我们实现了Spring Cloud
的一些接口,让我们可以快速搭建Spring Cloud
微服务项目框架,并能使用Kubernetes云原生服务。
Kubernetes
提供服务注册和发现、以及配置中心的实现,我们完全没有必要再自己部署一套注册中心、配置中心,因此Spring Cloud Kubernetes
为我们提供使用这些原生服务的接口实现。除注册中心和配置中心之外,如果我们还想使用istio
,Spring Cloud Kubernetes
也提供了支持,这些无非就是解释文章开头的那句话“Spring Cloud Kubernetes
提供使用Kubernetes
原生服务的Spring Cloud
公共接口实现”。
除此之外,我们依然可以使用Spring Cloud
生态的各种第三方框架的快速集成starter
,如网关Spring Cloud Gateway
、限流熔断组件Sentinel
。
下一篇我们开始使用Spring Cloud Kubernetes
搭建一个Demo
级别的微服务项目。






