使用ACS和Kubernetes部署Red Hat JBoss Fuse

Red Hat JBoss Fuse十多年来一直是构建Java Web / RESTful服务的事实标准。但是,你该如何在当今以云为中心的世界中有效运行?如您所见,基础架构即代码和可扩展/容错方法对于成功部署至关重要。

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

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

在Azure的Kubernetes群集上构建环境

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

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

将你的Red Hat JBoss服务打包到Docker容器中

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

Docker文件:

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

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

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

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

您现在已经在Azure容器服务上成功配置了Kubernetes,并且在Docker Registry中有一个Docker Image。接下来,你将准备好处理Kubernetes!

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

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

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

这里是Kubernetes的部署定义:

选择Rh-deployment.yaml,然后单击“Upload”。接下来,在左侧菜单中选择“Pods”。等到“rhesb- ...”准备就绪。这应该需要大约5分钟,因为图像是2GB。

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

这里是Kubernetes服务定义:

转到“Services”,等到新服务显示一个IP地址。随着负载平衡器和规则的创建,这将需要几分钟的时间。

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

虽然您可以使用此Docker Image和一些Kubernetes YAML文件进行生产,但您还应该:

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

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

本文的版权归 weihhh 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Kubernetes

docker container DNS配置介绍和源码分析

本文主要介绍了docker容器的DNS配置及其注意点,重点对docker 1.10发布的embedded DNS server进行了源码分析,看看embedde...

1.2K70
来自专栏Python爬虫与算法进阶

Pycharm插件推荐:Docker integration

在设置-Plugins-BROWSE REPOSITORIES… 中搜索“Docker”

1.2K20
来自专栏散尽浮华

Docker管理工具-Swarm部署记录

介绍另一个管理工具Swarm的用法,Swarm是Docker原生的集群管理软件,与Kubernetes比起来比较简单。

68660

如何连接Docker容器

使用Docker来容纳应用程序时,通常的做法是在单独的容器中运行应用程序的每个组件。例如,一个网站可能有一个Web服务器,应用程序和数据库,每个都在自己的容器中...

19340
来自专栏bboysoul

在docker中使用MySQL数据库

我是一直想把所有的程序都跑在docker里面,这样一方面是为了便于管理,另外一方面也可以增强自己对docker的理解,所以今天我就想学习一下最重要的数据库部分

18120
来自专栏Java帮帮-微信公众号-技术文章全总结

Docker 学习教程【面试+工作】

92740
来自专栏运维前线

Docker 常用命令收录 -- 持续更新

Docker 常用命令收录 容器操作 docker build -t friendlyname . # 使用当前目录下的内容创建Dockerfile镜像文件 ...

22850
来自专栏散尽浮华

Docker集中化web界面管理平台-Shipyard部署记录

之前介绍了DOcker的web管理工具DockerUI,下面介绍下Docker的另一个web界面管理工具Shipyard的使用。Shipyard(github)...

655100
来自专栏云计算

Docker for Devs:创建一个开发版镜像

Docker for Devs 系列包括以下6篇文章,这是第二篇。

37690
来自专栏JMCui

Docker 系列五(Docker Compose 项目).

    Docker Compose 是官方编排项目之一,负责快速的部署分布式应用。它允许用户通过一个单独的 docker-compose.yml 模板文件(Y...

10620

扫码关注云+社区

领取腾讯云代金券