カスタム DNS リゾルバーを追加した後に DNS 障害が表示されるのはなぜですか?

仮想プライベートクラウド 4.15 そしてその後

4.15 クラスタがすでに存在する VPC にカスタム DNS リゾルバを作成した後、DNS の障害が発生しました。

Satellite ストレージにおけるカスタムDNS設定の問題のトラブルシューティング。

以下の各ケースでは、以下の手順で説明されているように、 kube-<clusterID> セキュリティー・グループを同期し、ワーカー・ノードを置き換えます。 なお、VPC内でリゾルバーが作成され、有効化された直後には、この問題がすぐに確認できない場合があります。 DNS には、ワーカーが置換または再始動されるか、ポッドが再始動されるまで名前検索を解決する可能性があるキャッシュが含まれています。

  • クラスターへのワーカー・ノードの追加または置換が失敗し、 ibmcloud ks workers に以下のようなワーカー状況が表示される
    Infrastructure instance status is 'failed': Can't start instance because provisioning failed.
    
  • oc get oc を実行すると、以下のようなエラーが表示されます。
    dial tcp: lookup s3.direct.eu-de.cloud-object-storage.appdomain.cloud on 172.21.0.10:53: server misbehaving.
    
  • ワーカーを再起動すると、そのワーカー上のポッドが「 Terminating 」状態になったり、 OpenShift のWebコンソールが開かなくなったり、Ingressが「 Critical 」状態になったりします。

4.15 クラスタを作成する前に、VPC でカスタム DNS リゾルバを有効にしている場合、 Red Hat OpenShift on IBM Cloud は IBM Cloud 管理セキュリティグループ (kube-<clusterID>) に DNS リゾルバの IP アドレスを経由するトラフィックを許可するルールを自動的に追加します。

ただし、既に 4.15 クラスターが含まれている VPC でカスタム DNS リゾルバーを有効にすると、それらの既存のクラスターは DNS にアクセスできなくなります。

この問題を修正するには、 kube-<clusterID> セキュリティー・グループを同期して、既存のクラスター上の DNS リゾルバーへのアクセスを許可します。 「 kube-<clusterID> 」セキュリティグループを同期すると、DNSリゾルバーのIPアドレスを経由するトラフィックを許可するルールが追加されます。

  1. kube-<clusterID> セキュリティー・グループのセキュリティー・グループ ID を見つけます。

    ibmcloud is security-groups
    
  2. セキュリティー・グループを同期します。

    ibmcloud oc security-group sync --cluster <clusterID> --security-group <security-group-ID>
    
  3. クラスタ内のワーカーノードを置き換えてください。

    ibmcloud oc worker replace --cluster <cluster_name_or_ID> --worker <worker_node_ID>
    
  4. 問題が解決しない場合は、サポートにお問い合わせください。 サポート Case を開きます。 ケースの詳細には、関連するログ・ファイル、エラー・メッセージ、またはコマンド出力を必ず含めてください。

その他のシナリオ

VPC 内のカスタム DNS リゾルバーと同じ VPC 内の 4.15 クラスターの組み合わせが原因である可能性があるエラー条件。

DNS リゾルバーの作成後にクラスターが作成された場合

カスタム DNS リゾルバーを作成した後に 4.15 クラスターを作成し、ワーカーが Normal または Active の状態にならない場合、DNS カスタム・リゾルバーのルールは、ワーカーをデプロイするロジックで必要になる前に kube-<clusterID> セキュリティー・グループに追加されません。

  1. kube-<clusterID> セキュリティー・グループの詳細をリストして、カスタム DNS リゾルバー IP がセキュリティー・グループにターゲットとして追加されていることを確認します。
    ibmcloud is sg kube-<clusterID>
    
  2. クラスタ内のワーカーノードを置き換えてください。
    ibmcloud oc worker replace --cluster <cluster_name_or_ID> --worker <worker_node_ID>
    
  3. 問題が解決しない場合は、サポートにお問い合わせください。 サポート Case を開きます。 ケースの詳細には、関連するログ・ファイル、エラー・メッセージ、またはコマンド出力を必ず含めてください。