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
sudo systemctl start docker.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Docker 守护进程是否正在运行:
sudo systemctl status docker.service
sudo systemctl status docker.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从 Red Hat registry 下载可以使用 Docker 容器引擎镜像:
sudo docker pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11
sudo docker pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 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.11
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.11
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这里,
<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
- Podman 1.4.2
先决条件
- 您必须根据 第 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 文档:
3.5.4.2. 运行 Podman 环境 复制链接链接已复制到粘贴板!
要运行 Podman 容器环境,请按照以下步骤操作:
流程
从 Red Hat registry 下载就绪的 Podman 容器镜像:
podman pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11
podman pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 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.11
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.11
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这里,
<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
:以 detached mode 运行容器并打印容器 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\":
。
3.5.4.4. 其它资源 复制链接链接已复制到粘贴板!
- 有关经过测试和支持的配置的更多信息,请参阅 Red Hat 3scale API 管理支持的配置。
- 有关 Podman 入门的详情,请参考 基本设置和使用 Podman。