3.5. 在 Docker 容器化环境中部署 APIcast

这是一个分步骤指南,可在 Docker 容器引擎中部署 APIcast,它可以用作红帽 3scale API 管理 API 网关。

注意

在 Docker 容器化环境中部署 APIcast 时,受支持的 Red Hat Enterprise Linux(RHEL)和 Docker 版本如下:

  • RHEL 7.7
  • Docker 1.13.1

先决条件

要在 docker 容器化环境中部署 APIcast,请执行以下部分中所述的步骤:

3.5.1. 安装 Docker 容器化环境

本指南涵盖了在 RHEL 7.x 上设置 Docker 容器化环境的步骤。

红帽提供的 Docker 容器引擎作为 RHEL 中的 Extras 频道的一部分发布。要启用其他存储库,您可以使用 Subscription Manageryum-config-manager 选项。详情请查看 RHEL 产品文档

要在 Amazon Web Services(AWS)Amazon Elastic Compute Cloud(Amazon EC2)实例上部署 RHEL 7.x,请执行以下步骤:

流程

  1. 列出所有存储库:sudo yum repolist all.
  2. 查找 *-extras 存储库。
  3. 启用 extras 存储库:sudo yum-config-manager --enable rhui-REGION-rhel-server-extras.
  4. 安装 Docker 容器化环境软件包:sudo yum install docker

其他资源

对于其他操作系统,请参阅以下 Docker 文档:

3.5.2. 运行 Docker 容器化环境网关

重要

在 3scale 2.11 中,对作为 RHEL 7 中容器运行的 APIcast 部署的支持已弃用。在以后的发行版本中,3scale 将只支持 RHEL 8 和 Podman。如果您作为容器运行 APIcast 自我管理,请将安装升级到受支持的配置。

要运行 docker 容器化环境网关,请执行以下操作:

流程

  1. 启动 Docker 守护进程:

    $ sudo systemctl start docker.service
  2. 检查 Docker 守护进程是否正在运行:

    $ sudo systemctl status docker.service
  3. 从 Red Hat registry 下载可以使用 Docker 容器引擎镜像:

    $ sudo docker pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.13
  4. 在 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 字段中配置的主机相同。

其他资源

3.5.3. 其他资源

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

先决条件

要在 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 容器环境,请按照以下步骤操作。

流程

  1. 从 Red Hat registry 下载就绪的 Podman 容器镜像:

    $ podman pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.13
  2. 在 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 :Podman ps 用于列出创建和运行容器。将 -a 添加到 ps 命令将显示所有运行和停止的容器,例如 podman ps -a
  • inspect-l:检查正在运行的容器。例如,使用 inspect 查看分配给容器的 ID。使用 -l 获取最新容器的详细信息,例如 podman inspect -l | grep Id\":

3.5.4.4. 其他资源