Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

4.22. 自定义服务目录选项

服务目录在安装过程中默认启用。启用服务代理允许您在目录中注册服务代理。启用服务目录后,OpenShift Ansible 代理和模板服务代理也会被安装。如需更多信息,请参阅配置 OpenShift Ansible Broker配置 Template Service Broker。如果您禁用服务目录,则不会安装 OpenShift Ansible 代理和模板服务代理。

要禁用服务目录的自动部署,请在清单文件中设置以下集群变量:

openshift_enable_service_catalog=false

如果使用自己的 registry,您必须添加:

  • openshift_service_catalog_image_prefix:拉取服务目录镜像时,强制使用特定的前缀(如 registry)。您必须提供镜像名称前的完整 registry 名称。
  • openshift_service_catalog_image_version:拉取服务目录镜像时,强制使用特定镜像版本。

例如:

openshift_service_catalog_image="docker-registry.default.example.com/openshift/ose-service-catalog:${version}"
openshift_service_catalog_image_prefix="docker-registry-default.example.com/openshift/ose-"
openshift_service_catalog_image_version="v3.9.30"

4.22.1. 配置 OpenShift Ansible Broker

OpenShift Ansible 代理(OAB)在安装过程中默认启用。

如果您不想安装 OAB,请在清单文件中将 ansible_service_broker_install 参数值设置为 false:

ansible_service_broker_install=false

表 4.10. 服务代理自定义变量

变量用途

openshift_service_catalog_image_prefix

指定服务目录组件镜像的前缀。

4.22.1.1. 为 OpenShift Ansible Broker 配置持久性存储

OAB 部署其自身的 etcd 实例与 OpenShift Container Platform 集群的其他集群使用的 etcd 实例不同。OAB 的 etcd 实例需要使用持久性卷(PV)的独立存储才能正常工作。如果没有 PV 可用,etcd 将等待到 PV 满足为止。OAB 应用程序将进入 CrashLoop 状态,直到 etcd 实例可用。

为了进行部署,一些 Ansible playbook 捆绑包(APB)还需要一个 PV。例如,每个数据库 APB 都有两个计划:Development 计划使用临时存储且不需要 PV,而 Production 计划会使用持久性存储,且需要一个 PV。

APBPV 需要吗?

postgresql-apb

需要,但只适用于 Production 计划

mysql-apb

需要,但只适用于 Production 计划

mariadb-apb

需要,但只适用于 Production 计划

mediawiki-apb

为 OAB 配置持久性存储:

注意

以下示例显示使用 NFS 主机来提供所需的 PV,但可使用其他持久性存储供应商

  1. 在清单文件中,在 [OSEv3: Child] 部分添加 nfs 来启用 [nfs] 组:

    [OSEv3:children]
    masters
    nodes
    nfs
  2. 添加 [nfs] 组部分并为系统添加将会是 NFS 主机的主机名:

    [nfs]
    master1.example.com
  3. [OSEv3:vars] 部分添加以下内容:

    # nfs_directory must conform to DNS-1123 subdomain must consist of lower case
    # alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character
    
    openshift_hosted_etcd_storage_kind=nfs
    openshift_hosted_etcd_storage_nfs_options="*(rw,root_squash,sync,no_wdelay)"
    openshift_hosted_etcd_storage_nfs_directory=/opt/osev3-etcd 1
    openshift_hosted_etcd_storage_volume_name=etcd-vol2 2
    openshift_hosted_etcd_storage_access_modes=["ReadWriteOnce"]
    openshift_hosted_etcd_storage_volume_size=1G
    openshift_hosted_etcd_storage_labels={'storage': 'etcd'}
    1 2
    [nfs] 组中的主机上将使用路径 <nfs_directory>/<volume_name> 创建 NFS 卷。例如:使用这些选项的卷路径为 /opt/osev3-etcd/etcd-vol2

    这些设置会创建一个持久性卷,在集群安装过程中附加到 OAB 的 etcd 实例。

4.22.1.2. 为本地 APB 开发配置 OpenShift Ansible Broker

要将 APB 开发与 OpenShift Container Registry 和 OAB 结合,必须定义 OAB 可访问的镜像白名单。如果没有定义白名单,代理将忽略 APB,用户将不会看到可用的 APB。

默认情况下,白名单为空,用户在没有配置代理的情况下无法将 APB 镜像添加到代理中。将所有以 -apb 结尾的镜像列入白名单:

  1. 在清单文件中,将以下内容添加到 [OSEv3:vars] 部分:

    ansible_service_broker_local_registry_whitelist=['.*-apb$']

4.22.2. 配置 Template Service Broker

模板服务代理(TSB)在安装过程中默认启用。

如果不想安装 TSB,将 template_service_broker_install 参数值设置为 false:

template_service_broker_install=false

要配置 TSB,则必须将一个或多个项目定义为代理的源命名空间,用于将模板和镜像流加载到服务目录中。通过修改清单文件中的 [OSEv3:vars] 部分中的以下内容来设置源项目:

openshift_template_service_broker_namespaces=['openshift','myproject']

表 4.11. 模板服务代理自定义变量

变量用途

template_service_broker_prefix

指定模板 service broker 组件镜像的前缀。

ansible_service_broker_image_prefix

指定 ansible 服务代理组件镜像的前缀。