2.3. 创建 OpenShift 资源


本节提供了创建这些新元素所需的步骤。作为 3scale 2.6 发行版本的一部分,添加了以下 OpenShift 元素:

  • 数据库的新 ImageStreams:

    • backend-redis
    • system-redis
    • system-memcached
    • system-mysql
    • zync-database-postgresql
  • 新的 zync-que 组件,包含以下 OpenShift 对象:

    • zync-que DeploymentConfig
    • zync-que-sa ServiceAccount
    • zync-que 角色
    • zync-que-rolebinding RoleBinding

要创建新 OpenShift 元素,请按照以下步骤执行:

  1. 创建以下环境变量,其中包含部署 3scale 2.5 时的 WildcardDomain 设置:

    $ THREESCALE_WILDCARD_DOMAIN=$(oc get configmap system-environment  -o json | jq .data.THREESCALE_SUPERDOMAIN -r)
    Copy to Clipboard Toggle word wrap
  2. 验证 THREESCALE_WILDCARD_DOMAIN 环境变量不为空,并且它的值与部署 3scale 2.5 时设置的 Wildcard 域相同。

    $ echo ${THREESCALE_WILDCARD_DOMAIN}
    Copy to Clipboard Toggle word wrap
  3. 创建包含 ImageStreams 中设置的 ImportPolicy ImageStream 值的以下环境变量:

    $ IMPORT_POLICY_VAL=$(oc get imagestream amp-system -o json | jq -r ".spec.tags[0].importPolicy.insecure")
    if [ "$IMPORT_POLICY_VAL" == "null" ]; then
      IMPORT_POLICY_VAL="false"
    fi
    Copy to Clipboard Toggle word wrap
  4. 验证 IMPORT_POLICY_VAL 环境变量是否为 truefalse

    $ echo ${IMPORT_POLICY_VAL}
    Copy to Clipboard Toggle word wrap
  5. 创建以下环境变量,它将在 3scale pod 中包含 app Kubernetes 标签的当前值。例如,从 backend-listener pod 中获取它:

    $ DEPLOYED_APP_LABEL=$(oc get dc backend-listener -o json | jq .spec.template.metadata.labels.app -r)
    Copy to Clipboard Toggle word wrap
  6. 验证 DEPLOYED_APP_LABEL 环境变量不为空或为 null

    $ echo ${DEPLOYED_APP_LABEL}
    Copy to Clipboard Toggle word wrap
  7. 使用 3scale 2.6 amp.yml 标准场景模板为 2.6 版本部署新的 OpenShift 对象:

    $ oc new-app -f amp.yml --param WILDCARD_DOMAIN=${THREESCALE_WILDCARD_DOMAIN} --param IMAGESTREAM_TAG_IMPORT_INSECURE=${IMPORT_POLICY_VAL} --param APP_LABEL=${DEPLOYED_APP_LABEL}
    Copy to Clipboard Toggle word wrap

    您会看到几个错误。这些是正常的,因为 3scale 2.5 中已存在一些元素。不是错误的唯一可见行为:

    imagestream.image.openshift.io "zync-database-postgresql" created
    imagestream.image.openshift.io "backend-redis" created
    imagestream.image.openshift.io "system-redis" created
    imagestream.image.openshift.io "system-memcached" created
    imagestream.image.openshift.io "system-mysql" created
    role.rbac.authorization.k8s.io "zync-que-role" created
    serviceaccount "zync-que-sa" created
    rolebinding.rbac.authorization.k8s.io "zync-que-rolebinding" created
    deploymentconfig.apps.openshift.io "zync-que" created
    Copy to Clipboard Toggle word wrap
  8. 验证所有之前描述的新 ImageStreams 是否存在,以及所有新的 zync-que 相关元素:

    $ oc get is system-redis
    $ oc get is system-mysql
    $ oc get is system-memcached
    $ oc get is zync-database-postgresql
    $ oc get is backend-redis
    $ oc get role zync-que-role
    $ oc get sa zync-que-sa
    $ oc get rolebinding zync-que-rolebinding
    $ oc get dc zync-que
    Copy to Clipboard Toggle word wrap

    上述所有命令都会返回显示它们已经创建的输出。另外,如果输入:

    $ oc get pods | grep -i zync-que
    Copy to Clipboard Toggle word wrap

    您将看到其状态为 Error,或者指出崩溃的其它错误。这是预期的结果,因为 Zync 镜像还没有更新。这是在 第 2.8 节 “升级 3scale 镜像” 部分的点 4 中完成。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat