在AWS上使用Amazon Linux的Docker
本节将指导您在AWS弹性计算云(EC2)上的Amazon Linux AMI实例中使用Docker设置单个PubSub+软件事件代理容器。
开始之前
假设您已具备以下条件:
- 拥有一个Amazon EC2账户。
- 安装了稳定版本的Docker Engine。
系统要求
事件代理所需的CPU数量和系统内存分配取决于您需要支持的客户端连接数。默认情况下,事件代理的新安装允许多达100个客户端连接。
为了实现所需的稳定性和性能,托管PubSub+软件事件代理的基础设施必须提供一组最低系统资源。系统资源广泛包括与处理器、内存和存储相关的要求。有关所需系统资源类型及其特征的详细信息,请参见系统资源需求。
您可以使用系统缩放参数增加某些系统限制。增加这些系统限制也会增加所需的系统资源。有关更多信息,请参见使用系统缩放参数。
有关配置存储的信息,请参见管理容器镜像存储。
本页上的示例适用于多达1,000个连接的使用,并已适当配置用于测试和PoC活动。如果您计划在生产环境中使用您的事件代理,或将系统扩展到1,000个连接以上,请确保参考上述部分并适当配置您的系统。
对于ARM处理器,有一个版本的PubSub+容器与AWS Graviton实例兼容。
第1步:启动主机并安装Docker
使用EC2仪表板的启动实例向导创建一个Amazon Machine Image,您可以用它来运行事件代理。
- 在EC2仪表板的主页面,选择启动实例按钮。
按照设置向导操作并接受推荐的默认设置,除非在以下步骤中另有说明。
-
在选择AMI步骤中,从AWS Marketplace中选择一个适用于主机的Amazon Machine Image (AMI)。
-
在选择实例类型步骤中,根据上面的系统要求部分选择一个实例类型。
-
在配置实例详细信息步骤中,将子网设置为您的可用区。
-
在添加存储步骤中,设置实例的存储大小和卷类型。
附加到实例的存储量取决于您的应用程序。支持两种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/非压缩消息数据连接
根据需要可以打开其他端口。有关与事件代理服务相关的端口列表,请参见软件事件代理的默认配置。
- 完成启动向导步骤并登录到主机后,安装并配置Docker。可以在AWS Docker基础网页上找到说明。
- 如果您使用的是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+软件事件代理
要获取事件代理镜像:
- 启动Docker。
>sudo service docker start
您可以使用status
命令检查Docker的状态。
>sudo service docker status
- 拉取镜像:
>sudo docker pull solace/solace-pubsub-standard
加载完成后,您可以使用images
命令检查镜像。
>sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
solace/solace-pubsub-standard latest b8a61124d92f 10 days ago 1.11GB
此示例假设您使用 的是Solace PubSub+标准版。如果您想使用其他版本,您需要获得相应的事件代理包:
- 转到Solace PubSub+事件代理下载页面。
- 滚动到Docker部分,然后选择软件事件代理的版本。
- 填写您的详细信息,然后点击获取下载。
您将能够下载名为solace-pubsub-<edition>-<version>-docker.tar.gz
的压缩存档文件。
一旦您获得了包,启动Docker并加载镜像。
例如:
>sudo docker load -i /tmp/solace-pubsub-enterprise-<version>-docker.tar.gz
第3步:设置Docker创建选项
使用docker create
命令设置许多选项,用于构建事件代理容器。在此示例中,我们将展示一个适用于测试部署的简单配置,可以帮助您熟悉Solace PubSub+。
在此示例中:
- 通过
username_admin_globalaccesslevel
和username_admin_password
配置键,在容器创建时定义了admin
Solace CLI用户和相关密码。默认情况下,在事件代理容器中未定义任何Solace CLI用户,因此设置这些配置键允许容器在不先进入Solace CLI创建admin
用户的情况下通过Solace SolAdmin管理工具 进行管理。 storage-group
(在容器中映射到/var/lib/solace
)被绑定挂载到主机的/mnt/solace
。在创建容器之前,您必须在主机上创建/mnt/solace
目录。storage-group
至少需要5.1 GB的存储空间。有关更多信息,请参见系统资源需求和管理容器镜像存储。<repository>
和<tag>
的值取决于您之前加载的事件代理Docker镜像。例如,如果您从Docker拉取了latest
PubSub+标准镜像,<repository>
是solace/solace-pubsub-standard
,<tag>
是latest
。如果您加载了Solace PubSub+企业版版本9.13.0.6,<repository>
的值是solace-pubsub-enterprise
,<tag>
是9.13.0.6
。
- 创建
docker-create
脚本。
>sudo tee /root/docker-create <<-EOF
#!/bin/bash
sudo docker 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 \
--mount type=bind,source=/mnt/solace,destination=/var/lib/solace,ro=false
<repository>:<tag>
EOF
对于生产部署,有依赖于用例的因素将影响docker create
命令中的选项和配置键设置。有关更多信息,请参见系统资源需求和Docker文档。
- 使
docker-create
脚本可执行:
>sudo chmod +x /root/docker-create