
![[16.0.0.3 and later]](../ng_v16003plus.gif)
在 Docker 容器或 Node.js 服务器中配置 Liberty 可供应集群
您可以配置集合体以支持对 Docker 容器内 Liberty 服务器或 Node.js 服务器进行自主部署。 使用缩放控制器,可将 Liberty 软件安装至已注册主机并创建新的服务器。缩放控制器还可根据资源使用率及可选缩放策略启动或停止已部署服务器。应用程序需求很高时,可用服务器数增加,应用程序需求很低时,可用服务器数减少。
过程
- 完成配置可自动缩放集群以实现 JVM 弹性中的步骤。
观看:配置 Liberty 可自动缩放集群以实现 JVM 弹性视频演示了这些步骤。[脚本]
- 确保现有动态集群成员属于将用于 package_name.deploy.xml 文件(将放置在 stackGroups 目录结构中)中的集群名称。
此集群成员的类型必须与将按 package_name.deploy.xml 文件中所定义部署的成员类型相同。例如,如果堆栈将为 Docker,那么必须具有 Liberty Docker 成员。
package_name 是缩放控制器将为目标主机提供的服务器软件包的名称。有关该软件包的更多信息,请参见步骤 5。
- 可选: 将缩放策略添加至缩放控制器。请参阅定义缩放策略。
- 向缩放控制器注册每个目标主机。
注册主机将允许缩放控制器将文件传输至该主机,以及在该主机上访问文件、命令和其他资源。使用 registerHost 命令注册目标主机。查看缩放控制器的 server.xml 文件以查找 --host、--port、--user 和 --password 参数的值。要避免使用 SSH 专用密钥文件(例如,对于 Linux 或 Windows 操作系统上的目标主机),请通过设置 --rpcUser 和 --rpcUserPassword 参数来添加操作系统登录用户和密码。--rpcUser 指定的用户必须具有对目标部署位置的操作系统权限。
wlp/bin/collective registerHost targetHost --host=controllerHost --port=controllerHTTPSPort --user=controllerAdmin --password=controllerAdminPassword --rpcUser=osUser --rpcUserPassword=osUserPassword
如果已注册主机,那么可使用 updateHost 命令重置注册信息。如果目标主机与控制器主机在相同计算机上,那么您还必须对控制器主机运行 updateHost 命令。有关更多信息,请参阅向 Liberty 集合体注册主机。
- 创建名为 package_name.deploy.xml 的文件,用于为 DeployService 部署操作配置部署规则。
可以添加名称/值对,为“部署规则”输入变量设置值。
<deploy> <useRule id="rule_ID" /> <variable name="aName" value="aValue" /> ... </deploy>
对于 rule_ID,指定 Liberty 提供的部署规则的 id 值,或者为您自己的部署规则指定 id 值。此 package_name.deploy.xml 文件位于堆栈组 packages 目录 (步骤 7) 中。
对于变量名称和值,使用部署规则中定义的 inputVariables。
对于 Node.js 服务器,请参阅使用部署 REST API 部署 Node.js 服务器中步骤 2 中有关应用程序 .tgz 内容和位置的信息。
- 为缩放控制器 server.xml 文件中的集合体控制器设置用户名和密码。
<collectiveController user="adminUser" password="adminPassword" />
- 将 package_name.deploy.xml 文件放置在 WLP_STACK_GROUPS_DIR 位置中,缺省情况下,此位置为 $WLP_USER_DIR/shared/stackGroups。
缩放控制器监视文件系统中的缺省软件包位置并以动态方式响应更新。如果将文件放在缺省位置,那么不必更改任何缺省属性。
可使用缺省堆栈组 defaultStackGroup。或者,您可创建您自己的 stackGroups 子目录(例如,myStackGroup)并将其添加至 packages 子目录。
wlp/usr /servers /shared ... /stackGroups /defaultStackGroup /installables /packages /myStackGroup /packages
缩放控制器使用文件在已注册主机上创建新的服务器。
提示: 仅当缩放策略已启用并需要新服务器时,才会创建新服务器。要强制缩放控制器创建新服务器,请调整缩放策略的 min 值和(可能)max 值。例如,如果缩放控制器没有缩放策略并且集合体有三个缩放成员,请将对缩放控制器 server.xml 文件添加策略,该策略强制缩放控制器具有至少四个正在运行的成员:<scalingDefinitions> <defaultScalingPolicy enabled="true" min="4" max="6"/> </scalingDefinitions>
Liberty 弹性的集群命名约定为 StackGroupName.PackageName。部署堆栈时,系统会在所部署服务器的 server.xml 文件中自动设置 <clusterMember name="StackGroupname.PackageName"。对应 <scalingPolicy> 元素包含 <bind clusters="StackGroupName.Packagename"/> 语句。但是 Liberty 为 Docker 和 Node.js 提供的部署规则允许您将 clusterName 设置为任何值。
- 检查部署变量,并根据环境需要进行修改。
deployVariable 子元素指定注入至所部署堆栈的替换变量。可指定每次部署堆栈时替换变量自动递增。例如,使用 deployVariable 属性指定初始端口号值并在每次部署时递增此值。此情况下 deployVariable 的用途是避免在目标主机上发生端口冲突。
按使用部署 REST API 部署 Docker 容器的步骤 1c 中所述,为 Docker 映像设置部署变量。
按使用部署 REST API 部署 Node.js 服务器的步骤 3 中所述,为 Node.js 服务器部署设置部署变量。
- 可选: 更改缩放控制器检查文件系统以查找堆栈组添加、更新和删除的时间间隔。
此缩放控制器扫描 stackGroups 目录及其子目录的内容以查找更改。内容更改可能导致控制器提供先前没有可用软件包的集群。更新软件包不会导致控制器再次提供现有集群。
缺省情况下,控制器每 5000 毫秒(5 秒)扫描一次 WLP_STACK_GROUPS_DIR 位置。要更改扫描时间间隔或禁用扫描,请对缩放控制器 server.xml 文件中的堆栈管理器属性 scanningInterval 和 scanningEnable 设置新值。例如,要将扫描时间间隔设置为 6 秒并启用扫描,请向缩放控制器 server.xml 文件添加类似如下的语句:
<stackManager groupsDir="${wlp.install.dir}/usr/shared/stackGroups/" controllerUser="adminUser" controllerUserPassword="adminPassword" scanningInterval="6000" scanningEnable="true"> </stackManager>
要禁用扫描,请将 scanningEnable 设置为 false。
- 可选: 指示缩放控制器扫描文件系统以查找新堆栈组添加、更新和删除。
运行 StackManager MBean 操作以强制缩放控制器检查 WLP_STACK_GROUPS_DIR 位置来查找堆栈组添加、更新和删除。即使缩放控制器 server.xml 文件具有 scanningEnable="false",也可运行 StackManager MBean 操作以强制扫描添加、更新和删除。
请参阅所提供 MBean 的列表以了解有关 StackManager MBean 的信息。
- 可选: 启动 IHS 以允许路由至服务器。
为便于 IBM HTTP Server (IHS) 发现并路由至动态提供的集群上的 Web 应用程序,应在缩放控制器将驻留的主机上启用动态路由选择。IHS 将通过动态路由选择服务检索所提供服务器的路由信息。如果服务器状态为“已启用”,那么您可查看路由信息。
如果未安装 IHS,请参阅为 Liberty 集合体设置动态路由选择。而且,以下视频演示如何使用 IBM Installation Manager 来安装对动态路由选择的支持:
观看:启用 IHS 以实现 Liberty 动态路由选择视频显示如何安装 IHS、安装 WebSphere Application Server 的 Web 服务器插件并应用动态路由选择临时修订。[抄本]

文件名:twlp_autoscale_deployxml.html