跳到主要内容

在AWS上使用RHEL8的有根Podman

本节将指导您在AWS弹性计算云(EC2)上的Red Hat Enterprise Linux 8实例中使用Podman设置单个PubSub+软件事件代理容器。

开始之前

假设您拥有一个Amazon EC2账户。

系统要求

事件代理所需的CPU数量和系统内存分配取决于您需要支持的客户端连接数。默认情况下,事件代理的新安装允许多达100个客户端连接。

为了实现所需的稳定性和性能,托管PubSub+软件事件代理的基础设施必须提供一组最低系统资源。系统资源广泛包括与处理器、内存和存储相关的要求。有关所需系统资源类型及其特征的详细信息,请参见系统资源需求。

您可以使用系统缩放参数增加某些系统限制。增加这些系统限制也会增加所需的系统资源。有关更多信息,请参见使用系统缩放参数。

有关配置存储的信息,请参见管理容器镜像存储。

本页上的示例适用于多达1,000个连接的使用,并已适当配置用于测试和PoC活动。如果您计划在生产环境中使用您的事件代理,或将系统扩展到1,000个连接以上,请确保参考上述部分并适当配置您的系统。

第1步:启动主机并安装Podman

使用AWS EC2仪表板的启动实例向导创建一个Amazon Machine Image,您可以用它来运行事件代理。

  1. 在EC2仪表板的主页面,选择启动实例按钮。

img

按照设置向导操作并接受推荐的默认设置,除非在以下步骤中另有说明。

  1. 选择Amazon Machine Image (AMI)步骤中,搜索Red Hat Enterprise Linux 8然后选择AWS Marketplace中的官方AWS发行版。

  2. 选择实例类型步骤中,根据上面的系统要求部分选择一个实例类型

  3. 配置实例详细信息步骤中,将子网设置为您的可用区。

  4. 添加存储步骤中,设置实例的存储大小和卷类型。

附加到实例的存储量取决于您的应用程序。支持两种SSD卷类型,通用型和预配置IOPS。

对于测试部署,建议使用至少30 GB和预配置IOPS SSD。

  1. 名称和标签步骤中,为您的实例分配一个名称。

您可以根据应用程序的要求添加尽可能多的标签。

  1. 至少,建议安全组包括以下入站规则。
类型协议端口范围
自定义TCP规则TCP80800.0.0.0/0
自定义TCP规则TCP555550.0.0.0/0
SSHTCP220.0.0.0/0

这些端口号用于以下服务:

  • 22 - 主机SSH
  • 8080 - SEMP / Broker Manager / SolAdmin
  • 55555 - SMF/非压缩消息数据连接

根据需要可以打开其他端口。有关与事件代理服务相关的端口列表,请参见软件事件代理的默认配置。

  1. 完成启动向导步骤并登录到主机后,安装并配置Podman。可以在Podman安装说明网页上找到说明。
  2. 如果您使用的是t2.medium或t4g.medium实例类型,必须在主机启动后创建一个交换文件。输入以下命令:
>sudo mkdir /var/lib/solace
>sudo dd if=/dev/zero of=/var/lib/solace/swap count=3072 bs=1MiB
>sudo mkswap -f /var/lib/solace/swap
>sudo chmod 0600 /var/lib/solace/swap
>sudo swapon -f /var/lib/solace/swap
>sudo grep -q 'solace\/swap' /etc/fstab || sudo sh -c 'echo "/var/lib/solace/swap none swap sw 0 0" >> /etc/fstab'

第2步:获取PubSub+软件事件代理

要获取事件代理镜像:

  1. 导航到Red Hat Ecosystem Catalog的PubSub+软件事件代理页面。
  2. 按照获取此镜像标签上的说明操作。

这些步骤下载了一个Solace PubSub+标准版容器镜像。如果您想使用Solace PubSub+企业版,您需要获得相应的事件代理包。如果您已购买Solace PubSub+企业的容器镜像,Solace将为您提供如何从安全的Solace服务器下载压缩tar包的信息。需要帮助时请联系Solace。

下载包后,加载镜像。有关Podman命令语法的详细信息,请参见podman load。

例如:

>sudo podman load -i /tmp/solace-pubsub-enterprise-<version>-docker.tar.gz

第3步:设置Podman创建选项

使用podman create命令设置许多选项,用于创建事件代理实例。在此示例中,我们将展示一个适用于测试部署的简单配置,可以帮助您熟悉Solace PubSub+。

在此示例中:

  • 通过username_admin_globalaccesslevelusername_admin_password配置键,在容器创建时定义了adminSolace CLI用户和相关密码。默认情况下,在事件代理容器中未定义任何Solace CLI用户,因此设置这些配置键允许容器在不先进入Solace CLI创建admin用户的情况下通过Solace SolAdmin管理工具进行管理。
  • 存储组卷(名为solace)被挂载到容器的/var/lib/solace。如果尚不存在,Podman会自动创建该卷。storage-group至少需要5.1 GB的存储空间。有关更多信息,请参见系统资源需求和管理容器镜像存储。
  • 容器以有根模式创建。有关有根和无根容器之间的区别,请参阅无根容器。
  • <repository><tag>的值取决于您在上一节中加载的事件代理镜像。例如:
    • 如果您从Red Hat Ecosystem Catalog拉取了latest PubSub+标准镜像,则<repository>registry.connect.redhat.com/solace/pubsubplus-standard<tag>latest
    • 如果您获得了并加载了PubSub+标准版,<repository>的值是solace-pubsub-standard<tag>是您下载的版本,例如9.13.1.36

设置podman create选项:

  1. 使用sudo登录到Red Hat Connect registry:
>sudo podman login registry.connect.redhat.com
  1. 创建podman-create脚本,用适当的值替换<repository><tag>
>sudo tee ./podman-create <<-EOF
#!/bin/bash
sudo podman create \
--network=host \
--uts=host \
--shm-size=1g \
--ulimit core=-1 \
--ulimit memlock=-1 \
--ulimit nofile=2448:42192 \
--env 'username_admin_globalaccesslevel=admin' \
--env 'username_admin_password=admin' \
--name=solace \
-v solace:/var/lib/solace:z \
<repository>:<tag>
EOF

对于生产部署,有依赖于用例的因素将影响podman create命令中的选项和配置键设置。有关更多信息,请参见系统资源需求。

  1. 使podman-create脚本可执行:
>sudo chmod +x ./podman-create

第4步:创建容器

在您的主机上创建并运行事件代理容器。

  1. 创建容器:
>./podman-create

podman-create完成后,会显示一个长标识符,看起来像这样:

1cb8dba3c07b6970b1e22c1067fde76010259e50a8548c3f2f202a6e9ce4e345

这是您刚刚创建的事件代理容器的ID。

  1. 启动事件代理:
>sudo podman start solace

您可以使用podman ps命令检查事件代理的状态。

>sudo podman ps

与事件代理相关的STATUS列显示容器是否正在运行以及运行了多长时间。

第5步:管理软件事件代理

要开始对事件代理发出配置或监控命令,您可以访问Broker Manager或Solace CLI

要访问PubSub+ Broker Manager:

  1. 打开浏览器并输入http://localhost:8080
  2. 使用用户名admin和密码admin登录。

要访问Solace CLI:

  1. 输入以下podman exec命令:
>sudo podman exec
podman exec -it solace /usr/sw/loads/currentload/bin/cli -A
  1. 输入以下命令以进入配置模式:
solace> enable
solace# config
solace(configure)#

有关目前在事件代理上支持的Solace CLI命令列表,请参阅软件事件代理CLI命令。

后续

您现在拥有一个具有基本配置的软件事件代理容器,已准备好进行消息任务。

您可以在以下主题中使用额外的配置任务:

  • 软件事件代理的默认配置—查看在事件代理上运行的服务的默认端口号。
  • 系统资源要求—了解软件事件代理的资源要求。
  • 安全概述—应用安全功能以保护您的事件代理、系统和数据。

当您对事件代理感到满意时,您可以使用Solace SDKPerf应用程序进行消息测试。您可以从下载页面的其他软件部分下载SDKPerf。

有关使用您的事件代理的更多信息,请参见以下内容:

  • PubSub+ Broker Manager
  • 为软件事件代理容器配置Solace CLI
  • SDKPerf
  • 配置容器日志记录
  • 从软件事件代理容器收集诊断信息
  • 使用cloud-init初始化机器镜像