使用ACS和Kubernetes部署Red Hat JBoss Fuse

时间:2022-04-21
本文章向大家介绍使用ACS和Kubernetes部署Red Hat JBoss Fuse,主要内容包括在Azure的Kubernetes群集上构建环境、将你的红帽JBoss服务打包到Docker容器中、在可扩展的高可用性群集中运行您的服务、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

红帽JBoss Fuse 十多年来一直是构建Java Web / RESTful服务的实际标准。但是,如何在当今以云为中心的世界中该怎样高效运行?如您所见,基础架构即代码(infrastructure-as-a-code)和可扩展/容错(scalable/fault-tolerant)方法对于成功部署至关重要。

在本教程中,我们将向您展示如何:

  1. 在Azure中的Kubernetes(K8s)群集中构建环境。
  2. 将您的红帽JBoss服务打包到Docker容器中。
  3. 在可扩展的高可用性群集中运行您的服务。

在Azure的Kubernetes群集上构建环境

首先,您需要一个可操作的Kubernetes集群。

安装后,运行Kubernetes Dashboard(kubectl代理)并确保Kubernetes Dashboard UI(http://127.0.0.1:8001/ui)正在工作:

image.png

将你的红帽JBoss服务打包到Docker容器中

典型的红帽JBoss部署过程要求您安装红帽JBoss,配置Red Hat / Karaf功能,并部署服务(即开发的* .jar文件)。您可以使用Docker文件自动进行安装,并获取可用于测试和部署到生产交付的模块。

Docker文件:

image.png
image.png
image.png

设置你的Docker Image Registry(或使用DockerHub),并配置你的Docker注册表。

我们在Docker文件中使用命令“ bin/client log:display ”来帮助确保红帽重新配置和部署成功。

在此之后,典型的开发人员的流程将是构建一个Docker容器镜像,用一个版本标记该镜像,并将该镜像写入到Docker注册表:

image.png

在可扩展的高可用性群集中运行您的服务

您现在已经在Azure容器服务上成功配置了Kubernetes,并且在Docker Registry中有一个Docker 镜像。接下来,你可以通过Kubernetes继续!

基本上,您需要在Kubernetes中创建一个调度(用于Red Hat节点)和一个服务(用于负载平衡器和可公开访问的IP)。

要创建部署,请转到仪表板,然后在左侧菜单中选择“Deployment”。

点击右上角的“+Create”,然后选择“Upload a YAML or JSON file”选项。

image.png

这里是Kubernetes的部署设:

image.png
image.png

选择Rh-deployment.yaml,然后单击“Upload”。接下来,在左侧菜单中选择“pods”。等到“rhesb- ...”准备就绪。这里2GB的镜像需要大约5分钟时间。

image.png

然后转到“Services”,单击“+Create”,然后选择Kubernetes服务(rh-service.yaml)。确保服务配置中的“selector”属性与部署设置的“metadata”名称匹配。

这里是Kubernetes服务设定:

image.png

转到“Services”,等到新服务显示一个IP地址,这需要几分钟的时间来创建负载均衡。

您现在可以使用SoapUI或类似的工具来测试您的服务了:

image.png

虽然您可以使用此Docker镜像和一些Kubernetes YAML文件进行创建,但您还应该:

  • 选择一种管理环境特定属性的方法(例如,服务的URL和端口)。
  • 使用Stash或Azure监控代理设置日志传送。
  • 将readinessProbe和livenessProbe(针对每个服务)添加到Kubernetes服务配置中,以确保您不是无效节点的集群的所有者。

评论部分分享您的想法和问题。