用于管理 Web Sphere Liberty Docker 容器的新功能

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

特别感谢本文的共同作者 Chris Vignola。

2015 年 9 月的 Liberty Beta 包括 Liberty Docker 容器的管理功能预览。 Liberty Docker 容器是通过 Docker 映像打包和部署的 Liberty Server。此测试版的新功能是对这些容器进行集体管理。这是 Liberty 拥抱 Docker 的延续,从 在 Docker Hub 上发布 Liberty Docker 镜像 开始。

此测试版中 Liberty Docker 容器的管理功能包括:集体注册、管理中心可视化和操作以及第 1 阶段自动缩放。集体注册简单来说就是使用 collective join 命令将一个Liberty Docker容器添加到一个集体中进行管理。一旦成为集体的成员,Liberty Docker 容器就会在管理中心可见。状态、启动和停止操作可用。最后,您可以使用 Liberty 的缩放控制器功能将图像配置为可缩放。 “第一阶段”只是意味着测试版自动缩放功能仅限于常规 Liberty 服务器享有的完整自动缩放功能的一个子集。

下图描述了构建、发布和部署 Liberty Docker 映像到集合体以及创建容器的工作流

  1. 首先使用您最喜欢的开发人员工具在 Liberty 服务器上创建您的应用程序。将您的应用程序及其依赖项打包并发布为 Docker 映像。详细说明位于 Beta 知识中心 ,包括示例 Dockerfile。
  2. 将您的 Docker 映像拉到 Docker 主机(即运行 Docker 引擎的系统)并创建一个 Liberty 容器。
  3. 将 Liberty 容器加入到集体中,砰!您可以通过 Liberty 管理中心查看和控制您的 Liberty 容器。从容器中加入和移除 Liberty 服务器所需的脚本是: joinMember 脚本:

 memberHost="$(hostname -i)"
/opt/ibm/wlp/bin/collective join defaultServer --host=$controllerHost --port=$controllerPort --user=$controllerUser --password=$controllerPassword --hostName=$memberHost --createConfigFile --keystorePassword=$memberKeystorePassword --containerName=$containerName --containerHost=$containerHost --autoAcceptCertificates

mkdir /opt/ibm/wlp/usr/servers/defaultServer/configDropins mkdir /opt/ibm/wlp/usr/servers/defaultServer/configDropins/overrides mv /opt/ibm/wlp/usr/servers/defaultServer/c*.xml /opt/ibm/wlp/usr/servers/defaultServer/configDropins/overrides

rm /opt/ibm/docker/env.properties echo containerName=$containerName > /opt/ibm/docker/env.properties

删除成员脚本:


 memberHost="$(hostname -i)"
/opt/ibm/wlp/bin/collective join defaultServer --host=$controllerHost --port=$controllerPort --user=$controllerUser --password=$controllerPassword --hostName=$memberHost --createConfigFile --keystorePassword=$memberKeystorePassword --containerName=$containerName --containerHost=$containerHost --autoAcceptCertificates

mkdir /opt/ibm/wlp/usr/servers/defaultServer/configDropins mkdir /opt/ibm/wlp/usr/servers/defaultServer/configDropins/overrides mv /opt/ibm/wlp/usr/servers/defaultServer/c*.xml /opt/ibm/wlp/usr/servers/defaultServer/configDropins/overrides

rm /opt/ibm/docker/env.properties echo containerName=$containerName > /opt/ibm/docker/env.properties

  1. 或者,您可以配置 Liberty 自动缩放以扩展您的 Liberty Docker 映像。在此测试版中,只有缩放策略最小和最大设置控制给定图像的容器数量。您在第 3 步中使用的 join remove 脚本必须放在 Docker 映像中的 /opt/ibm/docker 中,并命名为 joinMember removeMember Beta 知识中心 包含容器内 Liberty 服务器的示例 server.xml

您可以在以下视频中看到所有这一切:

您可能想知道这种支持在普遍可用后会是什么样子。虽然我们不能做出任何承诺,但明显的改进将包括远程部署、第 2 阶段自动缩放(即基于指标,如 CPU)、健康管理和分析集成。

因此,如果您对管理 Liberty Docker 容器感兴趣,请继续关注并关注接下来的内容!