第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
などのカスタム証明書またはワイルドカードカスタム証明書 -
最新バージョンの
oc
CLI がインストールされているクラスターへのアクセス
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.yaml
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規に作成された CR のステータスを取得します。
oc get customdomains
$ oc get customdomains
Copy 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 Ready
Copy 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.com
Copy 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-project
Copy 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-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get route -n my-project
$ oc get route -n my-project
Copy 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) で証明書を更新できます。
前提条件
-
最新バージョンの
oc
CLI ツールがインストールされている。
手順
新しいシークレットを作成します。
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
トラブルシューティング