特别感谢本文的共同作者 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 映像到集合体以及创建容器的工作流
- 首先使用您最喜欢的开发人员工具在 Liberty 服务器上创建您的应用程序。将您的应用程序及其依赖项打包并发布为 Docker 映像。详细说明位于 Beta 知识中心 ,包括示例 Dockerfile。
- 将您的 Docker 映像拉到 Docker 主机(即运行 Docker 引擎的系统)并创建一个 Liberty 容器。
- 将 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
-
或者,您可以配置 Liberty 自动缩放以扩展您的 Liberty Docker 映像。在此测试版中,只有缩放策略最小和最大设置控制给定图像的容器数量。您在第 3 步中使用的
join
和remove
脚本必须放在 Docker 映像中的/opt/ibm/docker
中,并命名为joinMember
和removeMember
。 Beta 知识中心 包含容器内 Liberty 服务器的示例server.xml
。
您可以在以下视频中看到所有这一切:
您可能想知道这种支持在普遍可用后会是什么样子。虽然我们不能做出任何承诺,但明显的改进将包括远程部署、第 2 阶段自动缩放(即基于指标,如 CPU)、健康管理和分析集成。
因此,如果您对管理 Liberty Docker 容器感兴趣,请继续关注并关注接下来的内容!