アプリケーション開発
アプリケーション向けの Red Hat OpenShift Service on AWS の設定
概要
第1章 デプロイメント
1.1. アプリケーションのカスタムドメイン
アプリケーションのカスタムドメインを設定できます。カスタムドメインは、Red Hat OpenShift Service on AWS アプリケーションで使用できる特定のワイルドカードドメインです。
1.1.1. アプリケーションのカスタムドメインの設定
トップレベルのドメイン (TLD) は、Red Hat OpenShift Service on AWS クラスターを運用しているお客様が所有しています。カスタムドメイン Operator は、2 日目の操作としてカスタム証明書を使用して新規イングレスコントローラーを設定します。次に、このイングレスコントローラーのパブリック DNS レコードを外部 DNS で使用して、カスタムドメインで使用するワイルドカード CNAME レコードを作成できます。
Red Hat は API ドメインを制御するため、カスタム API ドメインはサポートされません。ただし、お客様はアプリケーションドメインを変更することができます。プライベート IngressController があるプライベートカスタムドメインの場合は、CustomDomain CR で .spec.scope を Internal に設定します。
前提条件
-
dedicated-admin権限を持つユーザーアカウント -
*.apps.<company_name>.ioなどの一意のドメインまたはワイルドカードドメイン -
CN=*.apps.<company_name>.ioなどのカスタム証明書またはワイルドカードカスタム証明書 -
最新バージョンの
ocCLI がインストールされているクラスターへのアクセス
CustomDomain CR の metadata/name: セクションで、予約された名前 default または apps* (apps や apps2 など) を使用しないでください。
手順
秘密鍵および公開証明書から新しい TLS シークレットを作成します。ここで、
fullchain.pemおよびprivkey.pemは、公開または秘密のワイルドカード証明書です。例
$ oc create secret tls <name>-tls --cert=fullchain.pem --key=privkey.pem -n <my_project>
新規の
CustomDomainカスタムリソース (CR) を作成します。例:
<company_name>-custom-domain.yamlapiVersion: 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
- カスタムドメインのロードバランサーのタイプ。このタイプは、ネットワークロードバランサーを使用する場合は、デフォルトの
classicまたはNLBにすることができます。 - 3
- 前の手順で作成されたシークレット
- 4
- オプション: CustomDomain イングレスによって提供されるルートのセットをフィルタリングします。値が指定されていない場合、デフォルトはフィルタリングなしです。
- 5
- オプション: CustomDomain イングレスによって提供される namespace のセットをフィルタリングします。値が指定されていない場合、デフォルトはフィルタリングなしです。
CR を適用します。
例
$ oc apply -f <company_name>-custom-domain.yaml
新規に作成された CR のステータスを取得します。
$ oc get customdomains
出力例
NAME ENDPOINT DOMAIN STATUS <company_name> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com *.apps.<company_name>.io Ready
エンドポイント値を使用して、Route53 などのマネージド DNS プロバイダーに新しいワイルドカード CNAME レコードセットを追加します。
例
*.apps.<company_name>.io -> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com
新規アプリケーションを作成し、これを公開します。
例
$ 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) で証明書を更新できます。
前提条件
-
最新バージョンの
ocCLI ツールがインストールされている。
手順
新しいシークレットを作成します。
$ oc create secret tls <secret-new> --cert=fullchain.pem --key=privkey.pem -n <my_project>
CustomDomain CR にパッチを適用します。
$ oc patch customdomain <company_name> --type='merge' -p '{"spec":{"certificate":{"name":"<secret-new>"}}}'古いシークレットを削除します。
$ oc delete secret <secret-old> -n <my_project>
トラブルシューティング