在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,您可以用它来运行事件代理。
- 在EC2仪表板的主页面,选择启动实例按钮。
按照设置向导操作并接受推荐的默认设置,除非在以下步骤中另有说明。
-
在选择Amazon Machine Image (AMI)步骤中,搜索Red Hat Enterprise Linux 8然后选择AWS Marketplace中的官方AWS发行版。
-
在选择实例类型步骤中,根据上面的系统要求部分选择一个实例类型。
-
在配置实例详细信息步骤中,将子网设置为您的可用区。
-
在添加存储步骤中,设置实例的存储大小和卷类型。
附加到实例的存储量取决于您的应用程序。支持两种SSD卷类型,通用型和预配置IOPS。
对于测试部署,建议使用至少30 GB和预配置IOPS SSD。
- 在名称和标签步骤中,为您的实例分配一个名称。
您可以根据应用程序的要求添加尽可能多的标签。
- 至少,建议安全组包括以下入站规则。
类型 | 协议 | 端口范围 | 源 |
---|---|---|---|
自定义TCP规则 | TCP | 8080 | 0.0.0.0/0 |
自定义TCP规则 | TCP | 55555 | 0.0.0.0/0 |
SSH | TCP | 22 | 0.0.0.0/0 |
这些端口号用于以下服务:
- 22 - 主机SSH
- 8080 - SEMP / Broker Manager / SolAdmin
- 55555 - SMF/非压缩消息数据连接
根据需要可以打开其他端口。有关与事件代理服务相关的端口列表,请参见软件事件代理的默认配置。
- 完成启动向导步骤并登录到主机后,安装并配置Podman。可以在Podman安装说明网页上找到说明。
- 如果您使用的是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+软件事件代理
要获取事件代理镜像:
- 导航到Red Hat Ecosystem Catalog的PubSub+软件事件代理页面。
- 按照获取此镜像标签上的说明操作。
这些步骤下载了一个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_globalaccesslevel
和username_admin_password
配置键,在容器创建时定义了admin
Solace 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
- 如果您从Red Hat Ecosystem Catalog拉取了
设置podman create
选项:
- 使用
sudo
登录到Red Hat Connect registry:
>sudo podman login registry.connect.redhat.com
- 创建
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
命令中的选项和配置键设置。有关更多信息,请参见系统资源需求。
- 使
podman-create
脚本可执行:
>sudo chmod +x ./podman-create
第4步:创建容器
在您的主机上创建并运行事件代理容器。
- 创建容器:
>./podman-create
podman-create
完成后,会显示一个长标识符,看起来像这样:
1cb8dba3c07b6970b1e22c1067fde76010259e50a8548c3f2f202a6e9ce4e345
这是您刚刚创建的事件代理容器的ID。
- 启动事件代理:
>sudo podman start solace
您可以使用podman ps
命令检查事件代理的状态。
>sudo podman ps
与事件代理相关的STATUS
列显示容器是否正在运行以及运行了多长时间。
第5步:管理软件事件代理
要开始对事件代理发出配置或监控命令,您可以访问Broker Manager或Solace CLI
要访问PubSub+ Broker Manager:
- 打开浏览器并输入
http://localhost:8080
。 - 使用用户名
admin
和密码admin
登录。
要访问Solace CLI:
- 输入以下
podman exec
命令:
>sudo podman exec
podman exec -it solace /usr/sw/loads/currentload/bin/cli -A
- 输入以下命令以进入配置模式:
solace> enable
solace# config
solace(configure)#
有关目前在事件代理上支持的Solace CLI命令列表,请参阅软件事件代理CLI命令。
后续
您现在拥有一个具有基本配置的软件事件代理容器,已准备好进行消息任务。
您可以在以下主题中使用额外的配置任务:
- 软件事件代理的默认配置—查看在事件代理上运行的服务的默认端口号。
- 系统资源要求—了解软件事件代理的资源要求。
- 安全概述—应用安全功能以保护您的事件代理、系统和数据。
当您对事件代理感到满意时,您可以使用Solace SDKPerf应用程序进行消息测试。您可以从下载页面的其他软件部分下载SDKPerf。
有关使用您的事件代理的更多信息,请参见以下内容:
- PubSub+ Broker Manager
- 为软件事件代理容器配置Solace CLI
- SDKPerf
- 配置容器日志记录
- 从软件事件代理容器收集诊断信息
- 使用cloud-init初始化机器镜像