使用ACS和Kubernetes部署Red Hat JBoss Fuse
红帽JBoss Fuse 十多年来一直是构建Java Web / RESTful服务的实际标准。但是,如何在当今以云为中心的世界中该怎样高效运行?如您所见,基础架构即代码(infrastructure-as-a-code)和可扩展/容错(scalable/fault-tolerant)方法对于成功部署至关重要。
在本教程中,我们将向您展示如何:
- 在Azure中的Kubernetes(K8s)群集中构建环境。
- 将您的红帽JBoss服务打包到Docker容器中。
- 在可扩展的高可用性群集中运行您的服务。
在Azure的Kubernetes群集上构建环境
首先,您需要一个可操作的Kubernetes集群。
安装后,运行Kubernetes Dashboard(kubectl代理)并确保Kubernetes Dashboard UI(http://127.0.0.1:8001/ui)正在工作:
将你的红帽JBoss服务打包到Docker容器中
典型的红帽JBoss部署过程要求您安装红帽JBoss,配置Red Hat / Karaf功能,并部署服务(即开发的* .jar文件)。您可以使用Docker文件自动进行安装,并获取可用于测试和部署到生产交付的模块。
Docker文件:
设置你的Docker Image Registry(或使用DockerHub),并配置你的Docker注册表。
我们在Docker文件中使用命令“ bin/client log:display ”来帮助确保红帽重新配置和部署成功。
在此之后,典型的开发人员的流程将是构建一个Docker容器镜像,用一个版本标记该镜像,并将该镜像写入到Docker注册表:
在可扩展的高可用性群集中运行您的服务
您现在已经在Azure容器服务上成功配置了Kubernetes,并且在Docker Registry中有一个Docker 镜像。接下来,你可以通过Kubernetes继续!
基本上,您需要在Kubernetes中创建一个调度(用于Red Hat节点)和一个服务(用于负载平衡器和可公开访问的IP)。
要创建部署,请转到仪表板,然后在左侧菜单中选择“Deployment”。
点击右上角的“+Create”,然后选择“Upload a YAML or JSON file”选项。
这里是Kubernetes的部署设:
选择Rh-deployment.yaml,然后单击“Upload”。接下来,在左侧菜单中选择“pods”。等到“rhesb- ...”准备就绪。这里2GB的镜像需要大约5分钟时间。
然后转到“Services”,单击“+Create”,然后选择Kubernetes服务(rh-service.yaml)。确保服务配置中的“selector”属性与部署设置的“metadata”名称匹配。
这里是Kubernetes服务设定:
转到“Services”,等到新服务显示一个IP地址,这需要几分钟的时间来创建负载均衡。
您现在可以使用SoapUI或类似的工具来测试您的服务了:
虽然您可以使用此Docker镜像和一些Kubernetes YAML文件进行创建,但您还应该:
- 选择一种管理环境特定属性的方法(例如,服务的URL和端口)。
- 使用Stash或Azure监控代理设置日志传送。
- 将readinessProbe和livenessProbe(针对每个服务)添加到Kubernetes服务配置中,以确保您不是无效节点的集群的所有者。
在评论部分分享您的想法和问题。
- 使用xUnit为.net core程序进行单元测试(下1)
- Otto开发初探——微服务依赖管理新利器
- Apache Eagle——eBay开源分布式实时Hadoop数据安全方案
- Spring/Hibernate 应用性能优化的7种方法
- 浅谈应用型机器学习作为一种搜索问题
- 自相关和偏自相关的简单介绍
- 机器学习中分类与回归的差异
- 自然语言处理指南(第1部分)
- GreenDao 兼容升级,保留旧数据的---全方面解决方案
- 基于 xorm 的服务端框架 XGoServer
- 全面总结: Golang 调用 C/C++,例子式教程
- 架构之路(六):把框架拉出来
- 第二届游戏运营技术论坛——云时代的游戏运营之道
- 如何才能准确测量 APP 的功耗?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法