跳到主要内容

在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,您可以用它来运行事件代理。

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

img

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

  1. 选择AMI步骤中,从AWS Marketplace中选择一个适用于主机的Amazon Machine Image (AMI)。

  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. 完成启动向导步骤并登录到主机后,安装并配置Docker。可以在AWS Docker基础网页上找到说明。
  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. 启动Docker。
>sudo service docker start

您可以使用status命令检查Docker的状态。

>sudo service docker status
  1. 拉取镜像:
>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+标准版。如果您想使用其他版本,您需要获得相应的事件代理包:

  1. 转到Solace PubSub+事件代理下载页面。
  2. 滚动到Docker部分,然后选择软件事件代理的版本。
  3. 填写您的详细信息,然后点击获取下载

您将能够下载名为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_globalaccesslevelusername_admin_password配置键,在容器创建时定义了adminSolace 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
  1. 创建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文档。

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

第4步:创建容器

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

  1. 创建容器:
>/root/docker-create

完成后,将显示一个长标识符,看起来像这样:

1cb8dba3c07b6970b1e22c1067fde76010259e50a8548c3f2f202a6e9ce4e345

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

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

您可以使用docker ps命令检查事件代理运行后的状态。

>sudo docker ps

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

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

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

要访问PubSub+ Broker Manager:

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

要访问Solace CLI:

  1. 输入以下docker exec命令:
>sudo docker exec -it <container_name> /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初始化机器映像