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 元素,请按照以下步骤执行:
创建以下环境变量,其中包含部署 3scale 2.5 时的 WildcardDomain 设置:
THREESCALE_WILDCARD_DOMAIN=$(oc get configmap system-environment -o json | jq .data.THREESCALE_SUPERDOMAIN -r)
$ THREESCALE_WILDCARD_DOMAIN=$(oc get configmap system-environment -o json | jq .data.THREESCALE_SUPERDOMAIN -r)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 THREESCALE_WILDCARD_DOMAIN 环境变量不为空,并且它的值与部署 3scale 2.5 时设置的 Wildcard 域相同。
echo ${THREESCALE_WILDCARD_DOMAIN}
$ echo ${THREESCALE_WILDCARD_DOMAIN}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建包含 ImageStreams 中设置的
ImportPolicy
ImageStream 值的以下环境变量:IMPORT_POLICY_VAL=$(oc get imagestream amp-system -o json | jq -r ".spec.tags[0].importPolicy.insecure")
$ 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 Copied! Toggle word wrap Toggle overflow 验证 IMPORT_POLICY_VAL 环境变量是否为 true 或 false :
echo ${IMPORT_POLICY_VAL}
$ echo ${IMPORT_POLICY_VAL}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建以下环境变量,它将在 3scale pod 中包含
app
Kubernetes 标签的当前值。例如,从backend-listener
pod 中获取它:DEPLOYED_APP_LABEL=$(oc get dc backend-listener -o json | jq .spec.template.metadata.labels.app -r)
$ DEPLOYED_APP_LABEL=$(oc get dc backend-listener -o json | jq .spec.template.metadata.labels.app -r)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 DEPLOYED_APP_LABEL 环境变量不为空或为
null
:echo ${DEPLOYED_APP_LABEL}
$ echo ${DEPLOYED_APP_LABEL}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 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}
$ 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 Copied! Toggle word wrap Toggle overflow 您会看到几个错误。这些是正常的,因为 3scale 2.5 中已存在一些元素。不是错误的唯一可见行为:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证所有之前描述的新 ImageStreams 是否存在,以及所有新的 zync-que 相关元素:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上述所有命令都会返回显示它们已经创建的输出。另外,如果输入:
oc get pods | grep -i zync-que
$ oc get pods | grep -i zync-que
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您将看到其状态为 Error,或者指出崩溃的其它错误。这是预期的结果,因为 Zync 镜像还没有更新。这是在 第 2.8 节 “升级 3scale 镜像” 部分的点 4 中完成。