这篇文章给大家分享的是有关树莓派k8s集群如何部署spring cloud微服务项目的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。spring cloud是当前的主流微服务框架之一,虽然目前官方已经推出了spring-cloud-kubernetes开源项目,用于将Spring Cloud应用更方便地运行在kubernetes环境,但考虑到目前有些spring cloud项目还是基于非k8s环境运行,一旦迁移至k8s环境需要尽可能保留原有的架构,因此本项目仍然采用eureka作为服务注册发现组件、spring-cloud-config作为配置中心。树莓派k8s集群树莓派k8s集群已安装helm对了,如果你还没有树莓派k8s集群,这里有一篇树莓派 k8s 集群入坑指南可以参考,欢迎入坑。以下是本实践用到的镜像,其源码和Dockerfile在https://gitee.com/pi4k8s/springcloud-simple.git ,具体代码就不介绍了,有兴趣的同学可以自行调整。调用链查看系统(zipkin-server):pi4k8s/spring-cloud-zipkin:0.0.1服务发现注册中心(eureka):pi4k8s/spring-cloud-eureka:0.0.1配置中心(config-server):pi4k8s/spring-cloud-config-server:0.0.1聚合断路器面板(hystrix-dashboard):pi4k8s/spring-cloud-hystrix-dashboard:0.0.1服务提供示例组件(provider):pi4k8s/spring-cloud-provider:0.0.1服务消费示例组件(consumer):pi4k8s/spring-cloud-consumer:0.0.1服务器网关(gateway):pi4k8s/spring-cloud-gateway:0.0.1调用链查看系统(zipkin-server):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/zipkin-server服务发现注册中心(eureka):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/eureka配置中心(config-server):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/config-server服务提供示例组件(provider):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/provider服务消费示例组件(consumer):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/consumer聚合断路器面板(hystrix-dashboard):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/hystrix-dashboard服务器网关(gateway):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/gateway之前我们的实例文章里基本都是介绍如何使用现成的chart去安装一个应用,比如msyql、redis、kafka和consul,今天我们选择从头编写chart并用该chart安装spring cloud示例项目。helm官方首页展现了helm的定义“the package manager for kubernetes”和进一步说明“Helm is the best way to find, share, and use software built for Kubernetes.”,翻译成中文就是“kubernetes的应用管理器”以及“Helm是发现、分享和使用为kubernetes构建的应用最好的方式”,极其精辟。一般来讲,为kubernetes构建的应用基本上就可以看做云原生应用,因为它至少符合了CNCF2015年对云原生最早的三个定义:容器化、面向微服务架构且支持容器的编排调度,由此我们看到helm在云原生领域展现的信心和实力,这点毋庸置疑,因为我们已经可以能够基于各类chart仓库很容易安装好我们需要的很多应用。但如果你真得没有找到现成的,那也没有关系,可以用helm的语法自己来定义和安装,一旦你确实这么做了,你会发现用helm来组织和定义应用是如此的简单和自然,面向容器化环境的基础设施去构架,可以让你不再纠结于服务器配置、网络配置和具体软件安装细节,只需要关注应用模块如何划分,模块之间关系如何交互即可。基于helm chart表述的软件架构视图可以充分覆盖传统软件架构的物理视图,表现内容甚至比它们还要丰富,且更具有扩展性。我们自己编写spring cloud示例项目chart在这里:https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/使用helm部署zipkin-server命令如下通过上述命令,将在Kubernetes中部署配置中心zipkin-server。该命令将会安装部署1个zipkin-server节点,且开放了ingress访问。。查看创建的pod查看创建的svc查看创建的ingress访问zipkin-server界面
用浏览器访问http://zipkin-server.pi4k8s.com/,显示如下
不过现在系统里还没有任何请求数据。注意:用浏览器访问zipkin-server界面之前要参考如下ip域名映射处理进行客户端设置。ip域名映射处理
在通过浏览器访问本实践所涉及系统之前,我们需要在使用客户端访问电脑建立ip和相关域名的映射关系,类似如下,后续eureka、gateway和hystrix-dashboard均需要设置,参考本段设置即可,不再赘述:
192.168.5.18 zipkin-server.pi4k8s.com
提示:win10或win7电脑中维护ip和相关域名的文件位置在 C:WindowsSystem32driversetchosts。使用helm部署eureka集群命令如下通过上述命令,将在Kubernetes中部署eureka集群。该命令将会安装部署3个eureka节点,且开放了ingress访问。查看创建的pod查看创建的svc查看创建的ingress访问eureka管理界面访问http://eureka.pi4k8s.com/ ,页面显示如下
使用helm部署config-server命令如下通过上述命令,将在Kubernetes中部署配置中心config-server。默认情况下service.type为ClusterIP类型,只支持k8s集群内部访问,示例命令将servcie.type修改为NodePort,且指定开放端口为8001,这样方便我们从客户端通过浏览器直接访问查看效果了。查看创建的pod查看创建的svc访问eureka管理界面访问http://eureka.pi4k8s.com/ 我们可以注意到配置中心已经注册到eureka如下使用nodeport方式访问配置中心的配置信息访问http://192.168.5.18:8001/config/dev,显示如下使用helm部署provider命令如下通过上述命令,将在kubernetes中部署服务提供示例组件provider。默认情况下service.type为ClusterIP类型,只支持k8s集群内部访问,示例命令将servcie.type修改为NodePort,且指定开放端口为8007,这样方便我们从客户端通过浏览器直接访问查看效果了。查看创建的pod查看创建的svc访问eureka管理界面访问http://eureka.pi4k8s.com/ 我们可以注意到provider已经注册到eureka如下使用nodeport方式访问provider的示例接口provider组件只提供了两个接口,其中from接口调用了配置中心的数据。访问http://192.168.5.18:8007/hello,显示如下访问http://192.168.5.18:8007/from,显示如下访问zipkin-server界面
provider不仅接入了配置中心,也接入了调用链系统,访问http://zipkin-server.pi4k8s.com/,可以查到相关调用链访问情况如下使用helm部署consumer命令如下通过上述命令,将在Kubernetes中部署服务消费示例组件consumer。默认情况下service.type为ClusterIP类型,只支持k8s集群内部访问, 香港云主机示例命令将servcie.type修改为NodePort,且指定开放端口为9000,这样方便我们从客户端通过浏览器直接访问查看效果了。查看创建的pod查看创建的svc访问eureka管理界面访问http://eureka.pi4k8s.com/ 我们可以注意到consumer已经注册到eureka如下使用nodeport方式访问consumer的示例接口访问http://192.168.5.18:9000/hello,显示如下访问zipkin-server界面consumer接入了调用链系统,访问http://zipkin-server.pi4k8s.com/,可以查到相关调用链访问情况如下访问hystrix-dashboard界面consumer配置了断路器面板可以独立展示,访问http://192.168.5.18:9000/hystrix,显示如下
该界面文本框内输入http://192.168.5.18:9000/actuator/hystrix.stream ,然后点击“Monitor Stream”按钮,显示如下使用helm部署hystrix-dashboard命令如下通过上述命令,将在Kubernetes中部署断路器面板hystrix-dashboard。该命令将会安装部署1个hystrix-dashboard节点,且开放了ingress访问,该断路器目前只聚合了consumer集群断路器面板。查看创建的pod查看创建的svc查看创建的ingress访问eureka管理界面
访问http://eureka.pi4k8s.com/ 我们可以注意到hystrix-dashboard已经注册到eureka如下访问hystrix-dashboard界面访问http://hystrix-dashboard.pi4k8s.com/hystrix,显示如下该界面文本框内输入http://hystrix-dashboard:9902/turbine.stream ,然后点击“Monitor Stream”按钮,进入聚合监控页面,显示如下consumer伸缩为3个后再看效果确认consumer启动3个节点成功访问http://eureka.pi4k8s.com/ 我们可以注意到consumer在eureka注册了3个节点如下刷新聚合监控页面,显示如下可以看到Hosts变为3。使用helm部署gateway命令如下通过上述命令,将在kubernetes中部署服务器网关gateway。该命令将会安装部署1个gateway节点,且开放了ingress访问。查看创建的pod查看创建的svc查看创建的ingress访问eureka管理界面访问http://eureka.pi4k8s.com/ 我们可以注意到gateway已经注册到eureka如下基于网关访问provider和consumer的接口这里的网关配置非常简单,通过它可以对所有注册到同一个eureka集群的服务进行代理,我们基于网关访问provider的2个接口和consumer的1个接口,看下效果。访问http://gateway.pi4k8s.com/provider/hello,显示如下访问http://gateway.pi4k8s.com/provider/from,显示如下访问http://gateway.pi4k8s.com/consumer/hello,显示如下感谢各位的阅读!关于“树莓派k8s集群如何部署spring cloud微服务项目”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
相关推荐: spring如何解决NoSuchBeanDefinitionException异常问题
这篇文章主要讲解了“spring如何解决NoSuchBeanDefinitionException异常问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“spring如何解决NoSuchBeanDefinitio…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。