13.11. Google Cloud でのプライベート DNS ゾーンの作成
OpenShift Container Platform クラスターで使用するプライベート DNS ゾーンを Google Cloud で設定する必要があります。このコンポーネントを作成する方法として、提供される Deployment Manager テンプレートを変更することができます。
提供される Deployment Manager テンプレートを使用して GCP インフラストラクチャーを使用しない場合、提供される情報を確認し、インフラストラクチャーを手動で作成する必要があります。クラスターが適切に初期化されない場合、インストールログを用意して Red Hat サポートに問い合わせする必要がある可能性があります。
前提条件
- Google Cloud アカウントを設定する。
- クラスターの Ignition 設定ファイルを生成します。
- Google Cloud で VPC および関連するサブネットを作成し、設定します。
手順
-
このトピックの プライベート DNS の Deployment Manager テンプレート セクションのテンプレートをコピーし、これを
02_dns.pyとしてコンピューターに保存します。このテンプレートは、クラスターに必要なプライベート DNS オブジェクトを記述しています。 02_dns.yamlリソース定義ファイルを作成します。$ cat <<EOF >02_dns.yaml imports: - path: 02_dns.py resources: - name: cluster-dns type: 02_dns.py properties: infra_id: '${INFRA_ID}'1 cluster_domain: '${CLUSTER_NAME}.${BASE_DOMAIN}'2 cluster_network: '${CLUSTER_NETWORK}'3 EOFgcloudCLI を使用してデプロイメントを作成します。$ gcloud deployment-manager deployments create ${INFRA_ID}-dns --config 02_dns.yamlこのテンプレートは Deployment Manager の制限により DNS エントリーを作成しないので、手動で作成する必要があります。
内部 DNS エントリーを追加します。
$ if [ -f transaction.yaml ]; then rm transaction.yaml; fi $ gcloud dns record-sets transaction start --zone ${INFRA_ID}-private-zone $ gcloud dns record-sets transaction add ${CLUSTER_IP} --name api.${CLUSTER_NAME}.${BASE_DOMAIN}. --ttl 60 --type A --zone ${INFRA_ID}-private-zone $ gcloud dns record-sets transaction add ${CLUSTER_IP} --name api-int.${CLUSTER_NAME}.${BASE_DOMAIN}. --ttl 60 --type A --zone ${INFRA_ID}-private-zone $ gcloud dns record-sets transaction execute --zone ${INFRA_ID}-private-zone外部クラスターの場合、外部 DNS エントリーも追加します。
$ if [ -f transaction.yaml ]; then rm transaction.yaml; fi $ gcloud dns record-sets transaction start --zone ${BASE_DOMAIN_ZONE_NAME} $ gcloud dns record-sets transaction add ${CLUSTER_PUBLIC_IP} --name api.${CLUSTER_NAME}.${BASE_DOMAIN}. --ttl 60 --type A --zone ${BASE_DOMAIN_ZONE_NAME} $ gcloud dns record-sets transaction execute --zone ${BASE_DOMAIN_ZONE_NAME}
13.11.1. プライベート DNS の Deployment Manager テンプレート リンクのコピーリンクがクリップボードにコピーされました!
以下の Deployment Manager テンプレートを使用して、OpenShift Container Platform クラスターに必要なプライベート DNS をデプロイすることができます。
例13.27 02_dns.py Deployment Manager テンプレート
def GenerateConfig(context):
resources = [{
'name': context.properties['infra_id'] + '-private-zone',
'type': 'dns.v1.managedZone',
'properties': {
'description': '',
'dnsName': context.properties['cluster_domain'] + '.',
'visibility': 'private',
'privateVisibilityConfig': {
'networks': [{
'networkUrl': context.properties['cluster_network']
}]
}
}
}]
return {'resources': resources}