2.4. 配置容器 registry 身份验证
作为 3scale 管理员,在 OpenShift 中部署 3scale 容器镜像之前,使用 registry.redhat.io
配置身份验证。
先决条件
- 集群管理员对 OpenShift Container Platform 集群的访问权限。
-
已安装 OpenShift
oc
客户端工具。如需了解更多详细信息,请参阅 OpenShift CLI 文档。
流程
以管理员身份登录您的 OpenShift 集群:
oc login -u system:admin
$ oc login -u system:admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开您要在其中部署 3scale 的项目:
oc project your-openshift-project
oc project your-openshift-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您的红帽客户门户网站帐户创建一个
docker-registry
secret,将threescale-registry-auth
替换为要创建的 secret:oc create secret docker-registry threescale-registry-auth \ --docker-server=registry.redhat.io \ --docker-username=CUSTOMER_PORTAL_USERNAME \ --docker-password=CUSTOMER_PORTAL_PASSWORD \ --docker-email=EMAIL_ADDRESS
$ oc create secret docker-registry threescale-registry-auth \ --docker-server=registry.redhat.io \ --docker-username=CUSTOMER_PORTAL_USERNAME \ --docker-password=CUSTOMER_PORTAL_PASSWORD \ --docker-email=EMAIL_ADDRESS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您将看到以下输出:
secret/threescale-registry-auth created
secret/threescale-registry-auth created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将机密链接到您的服务帐户,以使用机密拉取镜像。服务帐户名称必须与 OpenShift 容器集使用的名称匹配。这个示例使用
default
服务帐户:oc secrets link default threescale-registry-auth --for=pull
$ oc secrets link default threescale-registry-auth --for=pull
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 secret 链接到
builder
服务帐户,以使用 secret 推送和拉取构建镜像:oc secrets link builder threescale-registry-auth
$ oc secrets link builder threescale-registry-auth
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.1. 创建 registry 服务帐户 复制链接链接已复制到粘贴板!
要在 OpenShift 上部署的 3scale 2.11 共享环境中使用来自 registry.redhat.io
的容器镜像,您必须使用 Registry Service 帐户而不是单独的用户的 客户门户网站凭证。
这是一个 3scale 2.8 或更高选项的要求,您可以按照以下步骤操作,然后再使用模板或在 OpenShift 上部署,因为这两种选项都使用 registry 身份验证。
流程
- 进入 Registry Service Accounts 页面并登录。
点 New Service Account。在 Create a New Registry Service Account 页面上填写表单。
为 服务帐户 添加名称。
备注:您将在表单字段前面看到一个固定长度、随机生成的数字字符串。
- 输入 描述。
- 点击 Create。
- 切回到您的 服务帐户。
- 点 您创建的 服务帐户。
记录用户名,包括前缀字符串,如 12345678|username 和您的密码。
此用户名和密码将用于登录
registry.redhat.io
。注意Token Information 页面中提供了相应的选项卡,用于显示如何使用身份验证令牌。例如,Token Information 选项卡显示用户名 12345678|username,及其下面的密码字符串。
2.4.2. 修改 registry 服务帐户 复制链接链接已复制到粘贴板!
可以修改或删除服务帐户。这可从 Registry Service Account 页面,使用表中每个身份验证令牌右侧的弹出菜单。
重新生成或删除服务帐户会影响使用令牌进行身份验证并从 registry.redhat.io
检索内容的系统。
每个功能的描述如下:
重新生成令牌:允许授权用户重置与服务帐户关联的 密码。
备注:服务帐户的用户名不能更改。
- 更新描述:允许授权用户更新服务帐户的描述。
- 删除帐户:允许授权用户删除服务帐户。
2.4.3. 导入 3scale 模板 复制链接链接已复制到粘贴板!
从 3scale 2.6 开始,通配符路由已被删除。
- 这个功能由 Zync 在后台处理。
- 创建、更新或删除 API 提供程序时,路由会自动反映这些更改。
执行以下步骤将 3scale 模板导入到 OpenShift 集群中:
流程
在终端会话中以集群管理员身份登录到 OpenShift:
oc login
oc login
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 选择项目或创建新项目:
oc project <project_name>
oc project <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-project <project_name>
oc new-project <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入
oc new-app
命令:-
使用您作为配置节点和权利的一部分下载的 amp.yml 文件的路径指定
--file
选项。 通过将
WILDCARD_DOMAIN
参数设置为 OpenShift 集群的域来指定--param
选项:oc new-app --file /opt/amp/templates/amp.yml --param WILDCARD_DOMAIN=<WILDCARD_DOMAIN>
oc new-app --file /opt/amp/templates/amp.yml --param WILDCARD_DOMAIN=<WILDCARD_DOMAIN>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 终端会显示新创建的 3scale 管理门户的主和租户 URL 以及凭据。这个输出应包括以下信息:
- master admin 用户名
- master 密码
- 主令牌信息
- 租户用户名
- 租户密码
- 租户令牌信息
-
使用您作为配置节点和权利的一部分下载的 amp.yml 文件的路径指定
以 admin/xXxXyz123 身份登录 https://user-admin.3scale-project.example.com。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 记下这些详细信息,以备将来参考。
当命令返回时,OpenShift 上的 3scale 部署成功:
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当 OpenShift 上的 3scale 部署成功时,您的登录凭据将正常工作。
2.4.4. 获取管理门户 URL 复制链接链接已复制到粘贴板!
当使用模板部署 3scale 时,会创建一个带有固定 URL 的默认租户:3scale-admin.${wildcardDomain}
3scale 控制面板显示租户的新门户 URL。例如,如果 <wildCardDomain> 是 3scale-project.example.com
,则管理门户 URL 为 :https://3scale-admin.3scale-project.example.com
。
wildcardDomain
是您在安装过程中提供的 <wildCardDomain> 参数。使用这个命令在浏览器中打开这个唯一 URL:
xdg-open https://3scale-admin.3scale-project.example.com
xdg-open https://3scale-admin.3scale-project.example.com
另外,您还可以在 MASTER 门户 URL 上创建新的租户:master.${wildcardDomain}
2.4.5. 使用 Amazon Simple Storage Service 部署 3scale 复制链接链接已复制到粘贴板!
使用 Amazon Simple Storage Service(Amazon S3)部署 3scale 是一个可选流程。通过 Amazon S3 部署 3scale,执行以下步骤:
流程
- 下载 amp-s3.yml。
从终端会话登录到 OpenShift:
oc login
oc login
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 选择项目或创建新项目:
oc project <project_name>
oc project <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者
oc new-project <project_name>
oc new-project <project_name>
输入 oc new-app 命令:
-
使用 amp-s3.yml 文件的路径指定
--file
选项。 使用以下值指定
--param
选项:-
WILDCARD_DOMAIN
: 参数设置为 OpenShift 集群的域。 -
AWS_BUCKET
: 带有您的目标存储桶名称。 -
AWS_ACCESS_KEY_ID
: 您的 AWS 凭证 ID。 -
AWS_SECRET_ACCESS_KEY
: 您的 AWS 凭证 KEY。 -
AWS_REGION: with the AWS
: 您的存储桶的区域。 -
AWS_HOSTNAME
:默认:Amazon 端点 - AWS S3 兼容供应商端点主机名。 -
AWS_PROTOCOL
:默认:HTTPS - AWS S3 兼容供应商端点协议。 -
AWS_PATH_STYLE
:默认:false
- 当设置为true
时,存储桶名称始终保留在请求 URI 中,并且永远不会作为子域移到主机。
-
(可选)使用
TENANT_NAME
参数指定--param
选项,以设置管理门户的自定义名称。如果省略,则默认为 3scaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 终端会显示 master 和租户 URL,以及新创建的 3scale 管理门户的凭据。这个输出应包括以下信息:
- master admin 用户名
- master 密码
- 主令牌信息
- 租户用户名
- 租户密码
- 租户令牌信息
-
使用 amp-s3.yml 文件的路径指定
以 admin/xXxXyz123 身份登录 https://user-admin.3scale-project.example.com。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 记下这些详细信息,以备将来参考。
当命令返回时,OpenShift 上的 3scale 部署成功:
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当 OpenShift 上的 3scale 部署成功时,您的登录凭据将正常工作。
2.4.6. 使用 PostgreSQL 部署 3scale 复制链接链接已复制到粘贴板!
使用 PostgreSQL 部署 3scale 是一个可选过程。使用 PostgreSQL 部署 3scale 执行以下步骤:
流程
- 下载 amp-postgresql.yml。
从终端会话登录到 OpenShift:
oc login
oc login
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 选择项目或创建新项目:
oc project <project_name>
oc project <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者
oc new-project <project_name>
oc new-project <project_name>
输入 oc new-app 命令:
-
使用 amp-postgresql.yml 文件的路径指定
--file
选项。 -
使用以下值指定
--param
选项: -
WILDCARD_DOMAIN
: 参数设置为 OpenShift 集群的域。 (可选)使用
TENANT_NAME
参数指定--param
选项,以设置管理门户的自定义名称。如果省略,则默认为 3scaleoc new-app --file /path/to/amp-postgresql.yml \ --param WILDCARD_DOMAIN=<a-domain-that-resolves-to-your-ocp-cluster.com> \ --param TENANT_NAME=3scale \
oc new-app --file /path/to/amp-postgresql.yml \ --param WILDCARD_DOMAIN=<a-domain-that-resolves-to-your-ocp-cluster.com> \ --param TENANT_NAME=3scale \
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 终端会显示 master 和租户 URL,以及新创建的 3scale 管理门户的凭据。这个输出应包括以下信息:
- master admin 用户名
- master 密码
- 主令牌信息
- 租户用户名
- 租户密码
- 租户令牌信息
-
使用 amp-postgresql.yml 文件的路径指定
以 admin/xXxXyz123 身份登录 https://user-admin.3scale-project.example.com。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 记下这些详细信息,以备将来参考。
当命令返回时,OpenShift 上的 3scale 部署成功:
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当 OpenShift 上的 3scale 部署成功时,您的登录和凭据将正常工作。
2.4.7. 配置 SMTP 变量(可选) 复制链接链接已复制到粘贴板!
OpenShift 使用电子邮件发送通知并邀请新用户。如果要使用这些功能,则必须提供自己的 SMTP 服务器并在 system-smtp
机密中配置 SMTP 变量。
执行以下步骤在 system-smtp
secret 中配置 SMTP 变量:
流程
如果您还没有登录,请登录到 OpenShift:
oc login
oc login
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
oc patch
命令,指定system-smtp
是secret
名称的 secret 类型,后跟-p
选项,并在 JSON 中为以下变量写入新值:Expand 变量 描述 address
允许您将远程邮件服务器指定为中继
username
指定您的邮件服务器用户名
password
指定您的邮件服务器密码
domain
指定 HELO 域
port
指定邮件服务器侦听新连接的端口
身份验证
指定邮件服务器的身份验证类型。允许的值:
plain
(发送明文中的密码)、login
(发送密码 Base64 编码)或cram_md5
(交换信息和加密消息目标 5 算法以散列重要信息)openssl.verify.mode
指定在使用 TLS 时,OpenSSL 如何检查证书。允许的值:
none
或peer
。示例
oc patch secret system-smtp -p '{"stringData":{"address":"<your_address>"}}' oc patch secret system-smtp -p '{"stringData":{"username":"<your_username>"}}' oc patch secret system-smtp -p '{"stringData":{"password":"<your_password>"}}'
oc patch secret system-smtp -p '{"stringData":{"address":"<your_address>"}}' oc patch secret system-smtp -p '{"stringData":{"username":"<your_username>"}}' oc patch secret system-smtp -p '{"stringData":{"password":"<your_password>"}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
设置 secret 变量后,重新部署
system-app
和system-sidekiq
pod:oc rollout latest dc/system-app oc rollout latest dc/system-sidekiq
oc rollout latest dc/system-app oc rollout latest dc/system-sidekiq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查推出部署的状态,以确保它已完成:
oc rollout status dc/system-app oc rollout status dc/system-sidekiq
oc rollout status dc/system-app oc rollout status dc/system-sidekiq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow