第6章 デプロイメント
6.1. アプリケーションのカスタムドメイン リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS 4.14 以降、Custom Domain Operator は非推奨になりました。Red Hat OpenShift Service on AWS 4.14 で Ingress を管理するには、Ingress Operator を使用します。Red Hat OpenShift Service on AWS 4.13 以前のバージョンでは機能に変更はありません。
アプリケーションのカスタムドメインを設定できます。カスタムドメインは、Red Hat OpenShift Service on AWS アプリケーションで使用できる特定のワイルドカードドメインです。
6.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>
$ oc create secret tls <name>-tls --cert=fullchain.pem --key=privkey.pem -n <my_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規の
CustomDomainカスタムリソース (CR) を作成します。例:
<company_name>-custom-domain.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- カスタムドメイン。
- 2
- カスタムドメインのロードバランサーのタイプ。このタイプは、ネットワークロードバランサーを使用する場合は、デフォルトの
classicまたはNLBにすることができます。 - 3
- 前の手順で作成されたシークレット
- 4
- オプション: CustomDomain イングレスによって提供されるルートのセットをフィルタリングします。値が指定されていない場合、デフォルトはフィルタリングなしです。
- 5
- オプション: CustomDomain イングレスによって提供される namespace のセットをフィルタリングします。値が指定されていない場合、デフォルトはフィルタリングなしです。
CR を適用します。
例
oc apply -f <company_name>-custom-domain.yaml
$ oc apply -f <company_name>-custom-domain.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新規に作成された CR のステータスを取得します。
oc get customdomains
$ oc get customdomainsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME ENDPOINT DOMAIN STATUS <company_name> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com *.apps.<company_name>.io Ready
NAME ENDPOINT DOMAIN STATUS <company_name> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com *.apps.<company_name>.io ReadyCopy to Clipboard Copied! Toggle word wrap Toggle overflow エンドポイントの値を使用して、新規のワイルドカード CNAME レコードセットを、Route53、Azure DNS、Google DNS などの管理 DNS プロバイダーに追加します。
例
*.apps.<company_name>.io -> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com
*.apps.<company_name>.io -> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新規アプリケーションを作成し、これを公開します。
例
oc new-app --docker-image=docker.io/openshift/hello-openshift -n my-project
$ oc new-app --docker-image=docker.io/openshift/hello-openshift -n my-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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 create route <route_name> --service=hello-openshift hello-openshift-tls --hostname hello-openshift-tls-my-project.apps.<company_name>.io -n my-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc get route -n my-project
$ oc get route -n my-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow curl https://hello-openshift-tls-my-project.apps.<company_name>.io
$ curl https://hello-openshift-tls-my-project.apps.<company_name>.io Hello OpenShift!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.2. カスタムドメインの証明書の更新 リンクのコピーリンクがクリップボードにコピーされました!
oc CLI ツールを使用して、Custom Domains Operator (CDO) で証明書を更新できます。
前提条件
-
最新バージョンの
ocCLI ツールがインストールされている。
手順
新しいシークレットを作成します。
oc create secret tls <secret-new> --cert=fullchain.pem --key=privkey.pem -n <my_project>
$ oc create secret tls <secret-new> --cert=fullchain.pem --key=privkey.pem -n <my_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CustomDomain CR にパッチを適用します。
oc patch customdomain <company_name> --type='merge' -p '{"spec":{"certificate":{"name":"<secret-new>"}}}'$ oc patch customdomain <company_name> --type='merge' -p '{"spec":{"certificate":{"name":"<secret-new>"}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 古いシークレットを削除します。
oc delete secret <secret-old> -n <my_project>
$ oc delete secret <secret-old> -n <my_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
トラブルシューティング