第6章 デプロイメント
6.1. アプリケーションのカスタムドメイン リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated 4.14 以降、Custom Domain Operator は非推奨になりました。OpenShift Dedicated 4.14 で Ingress を管理するには、Ingress Operator を使用します。OpenShift Dedicated 4.13 以前のバージョンでは機能に変更はありません。
アプリケーションのカスタムドメインを設定できます。カスタムドメインは、OpenShift Dedicated アプリケーションで使用できる特定のワイルドカードドメインです。
6.1.1. アプリケーションのカスタムドメインの設定 リンクのコピーリンクがクリップボードにコピーされました!
トップレベルのドメイン (TLD) は、OpenShift Dedicated クラスターを運用しているお客様が所有しています。カスタムドメイン 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>.io1 scope: External loadBalancerType: Classic2 certificate: name: <name>-tls3 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エンドポイントの値を使用して、新規のワイルドカード CNAME レコードセットを、Route53、Azure DNS、Google DNS などの管理 DNS プロバイダーに追加します。
例
*.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!
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>CustomDomain CR にパッチを適用します。
$ oc patch customdomain <company_name> --type='merge' -p '{"spec":{"certificate":{"name":"<secret-new>"}}}'古いシークレットを削除します。
$ oc delete secret <secret-old> -n <my_project>
トラブルシューティング