第5章 ネットワーク

5.1. DNS 設定の詳細

5.1.1. 一般的な DNS 設定

Red Hat OpenShift Local によって管理される OpenShift Container Platform クラスターは、2 DNS ドメイン名 (crc.testing および apps-crc.testing) を使用します。crc.testing ドメインは、コア OpenShift Container Platform サービス用です。apps-crc.testing ドメインは、クラスターにデプロイされた OpenShift アプリケーションにアクセスするためのものです。

たとえば、OpenShift Container Platform API サーバーは、console-openshift-console.apps-crc.testing として OpenShift Container Platform コンソールにアクセスしている間に api.crc.testing として公開されます。これらの DNS ドメインは、Red Hat OpenShift Local インスタンス内で実行される dnsmasq DNS コンテナーによって提供されます。

crc setup コマンドは、これらのドメインを解決できるように、システムの DNS 設定を検出して調整します。crc start を起動する際に DNS が適切に設定されていることを確認するには、追加のチェックが行われます。

5.1.2. Linux

Linux では、ディストリビューションによっては、Red Hat OpenShift Local は以下の DNS 設定を想定します。

5.1.2.1. NetworkManager + systemd-resolved

この設定は、Fedora 33 以降、Ubuntu Desktop editions でデフォルトで使用されます。

  • Red Hat OpenShift Local コンテナーは NetworkManager がネットワークを管理することを想定します。
  • Red Hat OpenShift Local コンテナーは、testing ドメインの要求を 192.168.130.11 DNS サーバーに転送するように systemd-resolved を設定します。192.168.130.11 は、Red Hat OpenShift Local インスタンスの IP です。
  • systemd-resolved 設定は、/etc/NetworkManager/dispatcher.d/99-crc.sh の NetworkManager の dispatcher スクリプトで行います。

    #!/bin/sh
    
    export LC_ALL=C
    
    systemd-resolve --interface crc --set-dns 192.168.130.11 --set-domain ~testing
    
    exit 0
注記

systemd-resolved は、Red Hat Enterprise Linux および CentOS 8.3 でサポート対象外のテクノロジープレビューとしても利用できます。systemd-resolved を使用するように ホストを設定 したら、実行中のクラスターを停止して、crc setup を再実行します。

5.1.2.2. NetworkManager + dnsmasq

この設定は、Fedora 32 以前、Red Hat Enterprise Linux、CentOS ではデフォルトで使用されます。

  • Red Hat OpenShift Local コンテナーは NetworkManager がネットワークを管理することを想定します。
  • NetworkManager は、/etc/NetworkManager/conf.d/crc-nm-dnsmasq.conf 設定ファイルを介して dnsmasq を使用します。
  • この dnsmasq インスタンスの設定ファイルは /etc/NetworkManager/dnsmasq.d/crc.conf です。

    server=/crc.testing/192.168.130.11
    server=/apps-crc.testing/192.168.130.11
    • NetworkManager の dnsmasq インスタンスは、crc.testing および apps-crc.testing ドメインのリクエストを 192.168.130.11 DNS サーバーに転送します。