| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Kubernetes(K8s)部署 SpringCloud 服务实战 -> 正文阅读 |
|
[系统运维]Kubernetes(K8s)部署 SpringCloud 服务实战 |
目录 1. 概述老话说的好:有可能性就不要放弃,要敢于尝试。 言归正传,之前我们聊了一下如何在 Kubernetes(K8s)中部署容器,今天我们来聊一下如何将 SpringCloud 的服务部署到 Kubernetes(K8s)中。 2. 有状态应用和无状态应用?我们先来了解两个概念,有状态应用 和 无状态应用。 有状态应用:简单说就是不能简单的实现负载均衡的服务,例如:有数据产生的服务,Redis、MySql、RabbitMQ、ES等,这些服务必须通过一些较复杂的配置才能做到负载均衡。 无状态应用:就是没有数据的应用,可以简单的实现负载均衡,复制一个节点即可,例如:SpringCloud中的业务服务。 无状态的应用适合部署在?Kubernetes(K8s)中或者容器中。 有状态的应用,建议直接在物理机部署,方便管理、维护。 Eureka 服务,也属于有状态应用,因为 Eureka 服务集群需要每个节点去注册除自己之外的其他Eureka服务,配置文件有差异,因此每个节点是不一样的。 这里我们只部署一个Eureka节点,就也使用容器部署。 3. 场景说明使用之前搭建的?Kubernetes(K8s)集群,搭建的过程可参见我之前的文章《使用国内的镜像源搭建 kubernetes(k8s)集群》(使用国内的镜像源搭建 kubernetes(k8s)集群_追风人的博客-CSDN博客)。 在 Kubernetes(K8s)集群中,搭建1个 Eureka 节点,搭建2个 Gateway 负载均衡节点,搭建2个 Eureka Client? 负载均衡节点,提供一个简单的接口。 搭建成功后,我们通过调用 Gateway 来访问 Eureka Client 的这个简单接口。 4. 部署 SpringCloud 服务4.1 部署 Eureka 服务 4.1.1 Eureka 服务 application.yml 配置
4.1.2 生成 Eureka 服务的 Docker 镜像 简单起见,这里这里直接在?Kubernetes(K8s)的数据节点创建镜像,然后本地拉取,不上传到远程 Docker 仓库了。 # vi Dockerfile
#?docker build -t myeureka:1.0 . 4.1.3 Eureka 服务 Deployment 部署 在?Kubernetes(K8s)Master 节点执行 #?vi eureka-deployment.yml
#?kubectl apply -f eureka-deployment.yml 4.1.4?Eureka 服务?Service 部署 由于需要在浏览器打开 Eureka 控制台,并且其他服务需要向 Eureka 注册,因此需要部署 Service 。 在?Kubernetes(K8s)Master 节点执行 #?vi eureka_service.yml
#?kubectl apply -f eureka_service.yml 4.2 部署 Eureka Client 服务 4.2.1 Eureka Client 服务的简单接口
4.2.2 Eureka Client?服务 application.yml 配置
注:在?Kubernetes(K8s)中,容器间可以使用 Service 中的 metadata.name + “:” + spec.ports.port 访问服务,因此 Eureka Client 服务可以使用?my-eureka-svc:35000 访问 Eureka 服务 4.2.3 生成 Eureka Client 服务的 Docker 镜像 # vi Dockerfile
#?docker build -t myeurekaclient:1.0 . 4.2.4 Eureka Client 服务 Deployment 部署 #?vi eurekaclient-deployment.yml
#?kubectl apply -f eurekaclient-deployment.yml 4.3 部署 Gateway 服务 4.3.1 Gateway?服务 application.yml 配置 这里用简单的路由规则,按照服务的 string.application.name 小写的形式路由
4.3.2?生成?Gateway 服务的 Docker 镜像 #?vi Dockerfile
#?docker build -t mygateway:1.0 . 4.3.3?Gateway?服务 Deployment 部署 #?vi gateway-deployment.yml
#?kubectl apply -f gateway-deployment.yml 4.3.4?Gateway?服务?Service 部署 #?vi gateway_service.yml
#?kubectl apply -f gateway_service.yml ?? 4.4 验证 4.4.1 浏览器访问 Eureka 可以看到有2个 my-eureka-client 服务 和 2个 my-gateway 服务 注册到了 Eureka。 192.168.1.12 是 kubernetes(k8s)Master 节点的IP地址。 4.4.2 浏览器访问接口 http://192.168.1.12:44000/my-eureka-client/eurekaClient/hello 接口可以正常访问,代表验证成功。 5. 综述今天聊了一下 kubernetes(k8s)集群上是如何部署SpringCloud服务的,希望可以对大家的工作有所帮助。 欢迎帮忙点赞、评论、转发、加关注 :) 关注追风人聊Java,每天更新Java干货。 6. 个人公众号追风人聊Java,欢迎大家关注 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 2:21:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |