2.2. 非接続環境での DNS 接続の問題のトラブルシューティング
非接続環境で nmstate を設定するときにヘルスチェックプローブの問題が発生する場合は、デフォルトの root-servers.net ドメインではなく、カスタムドメイン名を解決するように DNS サーバーを設定できます。
DNS サーバーに root-servers.net ゾーンのネームサーバー (NS) エントリーが含まれていることを確認します。DNS サーバーはクエリーをアップストリームのリゾルバーに転送する必要はありませんが、サーバーは NS クエリーに対して正しい回答を返す必要があります。
2.2.1. bind9 DNS 名前付きサーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
bind9 DNS サーバーをクエリーするように設定されたクラスターの場合は、少なくとも 1 つの DNS レコードを含む設定ファイルに root-servers.net ゾーンを追加できます。たとえば、この条件にすでに一致するゾーンファイルとして /var/named/named.localhost を使用できます。
手順
次のコマンドを実行して、
/etc/named.conf設定ファイルの最後にroot-servers.netゾーンを追加します。$ cat >> /etc/named.conf <<EOF zone "root-servers.net" IN { type master; file "named.localhost"; }; EOF次のコマンドを実行して、
namedサービスを再起動します。$ systemctl restart named次のコマンドを実行して、
root-servers.netゾーンが存在することを確認します。$ journalctl -u named|grep root-servers.net出力例
Jul 03 15:16:26 rhel-8-10 bash[xxxx]: zone root-servers.net/IN: loaded serial 0 Jul 03 15:16:26 rhel-8-10 named[xxxx]: zone root-servers.net/IN: loaded serial 0次のコマンドを実行して、DNS サーバーが
root-servers.netドメインの NS レコードを解決できることを確認します。$ host -t NS root-servers.net. 127.0.0.1出力例
Using domain server: Name: 127.0.0.1 Address: 127.0.0.53 Aliases: root-servers.net name server root-servers.net.
2.2.2. dnsmasq DNS サーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
dnsmasq を DNS サーバーとして使用している場合は、指定した DNS サーバーを使用して root-servers.net を解決する新しい設定ファイルを作成するなどして、root-servers.net ドメインの解決を別の DNS サーバーに委任できます。
次のコマンドを実行して、ドメイン
root-servers.netを別の DNS サーバーに委任する設定ファイルを作成します。$ echo 'server=/root-servers.net/<DNS_server_IP>'> /etc/dnsmasq.d/delegate-root-servers.net.conf次のコマンドを実行して、
dnsmasqサービスを再起動します。$ systemctl restart dnsmasq次のコマンドを実行して、
root-servers.netドメインが別の DNS サーバーに委任されていることを確認します。$ journalctl -u dnsmasq|grep root-servers.net出力例
Jul 03 15:31:25 rhel-8-10 dnsmasq[1342]: using nameserver 192.168.1.1#53 for domain root-servers.net次のコマンドを実行して、DNS サーバーが
root-servers.netドメインの NS レコードを解決できることを確認します。$ host -t NS root-servers.net. 127.0.0.1出力例
Using domain server: Name: 127.0.0.1 Address: 127.0.0.1#53 Aliases: root-servers.net name server root-servers.net.
2.2.3. DNS 接続の問題を解決するためのカスタム DNS ホスト名の作成 リンクのコピーリンクがクリップボードにコピーされました!
外部 DNS サーバーに到達できない非接続環境では、NMState カスタムリソース定義 (CRD) にカスタム DNS ホスト名を指定することで、Kubernetes NMState Operator のヘルスプローブの問題を解決できます。
手順
クラスターの
NMStateCRD に DNS ホスト名の設定を追加します。apiVersion: nmstate.io/v1 kind: NMState metadata: name: nmstate spec: probeConfiguration: dns: host: redhat.com # ...次のコマンドを実行して、DNS ホスト名の設定をクラスターネットワークに適用します。
<filename>は、CRD ファイルの名前に置き換えます。$ oc apply -f <filename>.yaml