应用程序

OpenShift Dedicated 4

为应用程序配置 OpenShift Dedicated

摘要

本文档提供有关为应用程序部署配置 OpenShift Dedicated 的信息。这包括设置自定义通配符域。

第 1 章 Deployments

1.1. 为应用程序配置自定义域

1.1.1. 为应用程序配置自定义域

自定义域是可用于 OpenShift Dedicated 应用程序的特定通配符域。顶级域(TLD)归运行 OpenShift Dedicated 集群的客户所有。Custom Domains Operator 设置一个新的 ingresscontroller,带有自定义证书作为第二天操作。然后,外部 DNS 可以使用这个 ingresscontroller 的公共 DNS 记录来创建用于自定义域的通配符 CNAME 记录。

注意

不支持自定义 API 域,因为红帽控制 API 域。但是,客户可以更改自己的应用程序域。对于带有私有 IngressController 的专用自定义域,在 CustomDomain CR 中将 .spec.scope 设置为 Internal

先决条件

  • 具有 dedicated-admin 特权的用户帐户
  • 唯一的域或通配符域,如 *.apps.<company_name>.io
  • 一个自定义证书或通配符自定义证书,如 CN=*.apps.<company_name>.io
  • 访问安装最新版本的 oc CLI 的集群
重要

不要在 CustomDomain CR 的 metadata/name: 部分中使用保留的名称 default apps *,如 apps 或 apps2

流程

  1. 从私钥和公共证书创建一个新的 TLS secret,其中 fullchain.pemprivkey.pem 是您的公共或私有通配符证书。

    示例

    $ oc create secret tls <name>-tls --cert=fullchain.pem --key=privkey.pem -n <my_project>

  2. 创建新的 CustomDomain 自定义资源(CR):

    &lt ;company_name>-custom-domain.yaml示例

    apiVersion: managed.openshift.io/v1alpha1
    kind: CustomDomain
    metadata:
      name: <company_name>
    spec:
      domain: apps.companyname.io 1
      scope: External
      certificate:
        name: <name>-tls 2
        namespace: <my_project>

    1
    自定义域。
    2
    上一步中创建的 secret。
  3. 应用 CR:

    示例

    $ oc apply -f <company_name>-custom-domain.yaml

  4. 获取新创建的 CR 的状态:

    $ oc get customdomains

    输出示例

    NAME               ENDPOINT                                                    DOMAIN                       STATUS
    <company_name>     xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com  *.apps.<company_name>.io     Ready

  5. 使用 endpoint 值,向受管 DNS 供应商(如 Route53、Azure DNS 或 Google DNS)添加新的通配符 CNAME 记录et。

    示例

    *.apps.<company_name>.io -> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com

  6. 创建新应用并公开它:

    示例

    $ oc new-app --docker-image=docker.io/openshift/hello-openshift -n my-project

    $ oc create route edge --service=hello-openshift hello-openshift-tls --hostname hello-openshift-tls-my-project.apps.acme.io -n my-project
    $ oc get route -n my-project
    $ curl https://hello-openshift-tls-my-project.apps.<company_name>.io
    Hello OpenShift!