第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
などのカスタム証明書またはワイルドカードカスタム証明書 -
最新バージョンの
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>
新規の
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
- カスタムドメインのロードバランサーのタイプ。このタイプは、ネットワークロードバランサーを使用する場合は、デフォルトの
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) で証明書を更新できます。
前提条件
-
最新バージョンの
oc
CLI ツールがインストールされている。
手順
新しいシークレットを作成します。
$ 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>
トラブルシューティング