3.5. 在 Docker 容器化环境中部署 APIcast
这是一个分步骤指南,可在 Docker 容器引擎中部署 APIcast,它可以用作红帽 3scale API 管理 API 网关。
在 Docker 容器化环境中部署 APIcast 时,受支持的 Red Hat Enterprise Linux(RHEL)和 Docker 版本如下:
- RHEL 7.7
- Docker 1.13.1
先决条件
- 您必须根据 第 3 章 安装 APIcast 在 3scale 管理门户中配置 APIcast。
- 要创建 registry 服务帐户,请参阅 创建和修改 registry 服务帐户。
要在 docker 容器化环境中部署 APIcast,请执行以下部分中所述的步骤:
3.5.1. 安装 Docker 容器化环境
本指南涵盖了在 RHEL 7.x 上设置 Docker 容器化环境的步骤。
红帽提供的 Docker 容器引擎作为 RHEL 中的 Extras 频道的一部分发布。要启用其他存储库,您可以使用 Subscription Manager 或 yum-config-manager 选项。详情请查看 RHEL 产品文档。
要在 Amazon Web Services(AWS)Amazon Elastic Compute Cloud(Amazon EC2)实例上部署 RHEL 7.x,请执行以下步骤:
流程
-
列出所有存储库:
sudo yum repolist all
. -
查找
*-extras
存储库。 -
启用
extras
存储库:sudo yum-config-manager --enable rhui-REGION-rhel-server-extras
. -
安装 Docker 容器化环境软件包:
sudo yum install docker
。
其他资源
对于其他操作系统,请参阅以下 Docker 文档:
3.5.2. 运行 Docker 容器化环境网关
在 3scale 2.11 中,对作为 RHEL 7 中容器运行的 APIcast 部署的支持已弃用。在以后的发行版本中,3scale 将只支持 RHEL 8 和 Podman。如果您作为容器运行 APIcast 自我管理,请将安装升级到受支持的配置。
要运行 docker 容器化环境网关,请执行以下操作:
流程
启动 Docker 守护进程:
$ sudo systemctl start docker.service
检查 Docker 守护进程是否正在运行:
$ sudo systemctl status docker.service
从 Red Hat registry 下载可以使用 Docker 容器引擎镜像:
$ sudo docker pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.13
在 Docker 容器引擎中运行 APIcast:
$ sudo docker run --name apicast --rm -p 8080:8080 -e THREESCALE_PORTAL_ENDPOINT=https://<access_token>@<domain>-admin.3scale.net registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.13
在这里,
<access_token>
是 3scale 帐户管理 API 的访问令牌。您可以使用 Provider Key 而不是访问令牌。<domain>-admin.3scale.net
是 3scale 管理门户的 URL。
此命令在端口 8080
上运行名为 "apicast" 的 Docker 容器引擎,并从 3scale 管理门户获取 JSON 配置文件。有关其他配置选项,请参阅 安装 APIcast。
3.5.2.1. docker 命令选项
您可以在 docker run
命令中使用以下选项:
-
--rm
:在容器退出时自动移除容器。 -
-d
或--detach
:在后台运行容器,并打印容器 ID。如果未指定,容器将以前台模式运行,您可以使用CTRL + c
来停止容器。以分离模式启动时,您可以使用docker attach
命令重新连接到容器,例如docker attach apicast
。 -
-p
或--publish
:向主机发布容器的端口。该值的格式应为<host port="">:<container port="">
,因此-p 80:8080
将容器的端口8080
绑定到主机计算机的端口80
。例如,管理 API 使用端口8090
,因此您可能希望通过在docker run
命令中添加-p 8090:8090
来发布此端口。 -
-e
或--env
:设置环境变量。 -
-v
或--volume
:挂载卷。该值通常以<host path="">:<container path="">[:<options>]
表示。<options>
是一个可选属性;您可以将其设置为:ro
以指定该卷将仅读取(默认情况下,它以读写模式挂载)。示例:-v /host/path:/container/path:ro
。
3.5.2.2. 测试 APIcast
前面的步骤确保 Docker 容器引擎使用您自己的配置文件和 3scale registry 中的 Docker 容器镜像来运行。您可以通过 APIcast 在端口 8080
上测试调用,并提供正确的身份验证凭据,您可以从 3scale 帐户获得这些凭据。
测试调用不仅验证 APIcast 是否在正确运行,还验证身份验证和报告是否得到成功处理。
确保您用于调用的主机与 Integration 页面的 Public Base URL 字段中配置的主机相同。
其他资源
- 有关可用选项的更多信息,请参阅 Docker 运行参考。
3.5.3. 其他资源
- 如需有关经过测试和支持的配置的更多信息,请参阅 Red Hat 3scale API 管理支持的配置
3.5.4. 在 Podman 上部署 APIcast
这是在 Pod Manager(Podman)容器环境中部署 APIcast 的逐步指南,用作红帽 3scale API 管理 API 网关。
在 Podman 容器环境中部署 APIcast 时,受支持的 Red Hat Enterprise Linux(RHEL)和 Podman 版本如下:
- RHEL 8.x/9.x
- Podman 4.2.0/4.1.1
先决条件
- 您必须根据 第 3 章 安装 APIcast 在 3scale 管理门户中配置 APIcast。
- 要创建 registry 服务帐户,请参阅 创建和修改 registry 服务帐户。
要在 Podman 容器环境中部署 APIcast,请执行以下部分中所述的步骤:
3.5.4.1. 安装 Podman 容器环境
本指南涵盖了在 RHEL 8.x 上设置 Podman 容器环境的步骤。RHEL 8.x 中不包括 Docker,因此请使用 Podman 来运行容器。
有关 RHEL 8.x 的 Podman 的详情,请参阅容器命令行参考。
流程
安装 Podman 容器环境软件包:
$ sudo dnf install podman
其他资源
对于其他操作系统,请参阅以下 Podman 文档:
- Podman 安装说明
3.5.4.2. 运行 Podman 环境
要运行 Podman 容器环境,请按照以下步骤操作。
流程
从 Red Hat registry 下载就绪的 Podman 容器镜像:
$ podman pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.13
在 Podman 中运行 APIcast:
$ podman run --name apicast --rm -p 8080:8080 -e THREESCALE_PORTAL_ENDPOINT=https://<access_token>@<domain>-admin.3scale.net registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.13
在这里,
<access_token>
是 3scale 帐户管理 API 的访问令牌。您可以使用 Provider Key 而不是访问令牌。<domain>-admin.3scale.net
是 3scale 管理门户的 URL。
此命令在端口 8080
上运行名为 "apicast" 的 Podman 容器引擎,并从 3scale 管理门户获取 JSON 配置文件。有关其他配置选项,请参阅 安装 APIcast。
3.5.4.2.1. 使用 Podman 测试 APIcast
上述步骤确保 Podman 容器引擎使用您自己的配置文件和 3scale registry 中的 Podman 容器镜像来运行。您可以通过 APIcast 在端口 8080
上测试调用,并提供正确的身份验证凭据,您可以从 3scale 帐户获得这些凭据。
测试调用不仅验证 APIcast 是否在正确运行,还验证身份验证和报告是否得到成功处理。
确保您用于调用的主机与 Integration 页面的 Public Base URL 字段中配置的主机相同。
3.5.4.3. podman
命令选项
您可以在 podman
命令中使用以下选项示例:
-
-d
:在分离模式中运行容器,并打印容器 ID。如果未指定,容器将以前台模式运行,您可以使用CTRL + c
来停止容器。以分离模式启动时,您可以使用podman attach
命令重新附加到容器,例如podman attach apicast
。 -
ps
和-a
:Podmanps
用于列出创建和运行容器。将-a
添加到ps
命令将显示所有运行和停止的容器,例如podman ps -a
。 -
inspect
和-l
:检查正在运行的容器。例如,使用inspect
查看分配给容器的 ID。使用-l
获取最新容器的详细信息,例如podman inspect -l | grep Id\":
。