应用程序开发


Red Hat OpenShift Service on AWS 4

为您的应用程序配置 Red Hat OpenShift Service on AWS

Red Hat OpenShift Documentation Team

摘要

本文档提供有关为应用程序开发配置 Red Hat OpenShift Service on AWS(ROSA)的信息。这包括设置自定义通配符域。

第 1 章 部署

1.1. 应用程序自定义域

注意

从 Red Hat OpenShift Service on AWS 4.14 开始,自定义域 Operator 已被弃用。要在 AWS 4.14 上的 Red Hat OpenShift Service 中管理 Ingress,请使用 Ingress Operator。对于 Red Hat OpenShift Service on AWS 4.13 及更早的版本,这个功能不会改变。

您可以为应用程序配置自定义域。自定义域是可用于 AWS 应用程序上的 Red Hat OpenShift Service 的特定通配符域。

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

顶级域 (TLD) 由操作 Red Hat OpenShift Service on AWS 的用户所有。Custom Domains Operator 使用自定义证书设置一个新的入口控制器作为第二天操作。然后,外部 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: 部分中使用保留的名称 defaultapps*(如appsapps2)。

流程

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

    示例

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

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

    示例 <company_name>-custom-domain.yaml

    apiVersion: managed.openshift.io/v1alpha1
    kind: CustomDomain
    metadata:
      name: <company_name>
    spec:
      domain: apps.<company_name>.io 1
      scope: External
      loadBalancerType: Classic 2
      certificate:
        name: <name>-tls 3
        namespace: <my_project>
      routeSelector: 4
        matchLabels:
         route: acme
      namespaceSelector: 5
        matchLabels:
         type: sharded

    1
    自定义域。
    2
    自定义域的负载均衡器的类型。如果您使用网络负载均衡器,此类型可以是默认的 classicNLB
    3
    上一步中创建的 secret。
    4
    可选:过滤由 CustomDomain ingress 提供服务的 Routes 组。如果没有提供值,则默认为没有过滤。
    5
    可选:过滤由 CustomDomain ingress 提供服务的 Namespaces 组。如果没有提供值,则默认为没有过滤。
  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. 使用端点值,向受管 DNS 供应商(如 Route53)添加新的通配符 CNAME 记录。

    示例

    *.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 <route_name> --service=hello-openshift hello-openshift-tls --hostname hello-openshift-tls-my-project.apps.<company_name>.io -n my-project
    $ oc get route -n my-project
    $ curl https://hello-openshift-tls-my-project.apps.<company_name>.io
    Hello OpenShift!

1.1.2. 为自定义域续订证书

您可以使用 oc CLI 工具使用 Custom Domains Operator (CDO) 续订证书。

先决条件

  • 已安装最新版本的 oc CLI 工具。

流程

  1. 创建新 secret

    $ oc create secret tls <secret-new> --cert=fullchain.pem --key=privkey.pem -n <my_project>
  2. Patch CustomDomain CR

    $ oc patch customdomain <company_name> --type='merge' -p '{"spec":{"certificate":{"name":"<secret-new>"}}}'
  3. 删除旧的 secret

    $ oc delete secret <secret-old> -n <my_project>

Legal Notice

Copyright © 2024 Red Hat, Inc.

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.