問題

まず私の質問のために、私は私のenviromentsについて少し話す必要があります:

  1. Google Basic Setup:3つのノードを持つ1x f1-microインスタンス

  2. Kubernetesセットアップ:nginx-ingress-controller、cert-manager、展開時の1バックエンドサービス、展開時の1フロントエンドサービス。

  3. Mongo Atlasセットアップ:3-replicaSet

セットアップはprolbemではありませんが、シナリオの感情を与えるかもしれません。

さて、問題になりましょう、私のNodejsバックエンドはMonglAtlasデータベースに接続するために次のURLを使用します:

 MONGODB_URI=mongodb+srv://username:[email protected]/test?retryWrites=true
 

IP Whitelistは、nginx-ingressを使用してルーティングする静的パブリックIPです。フロントエンドのWebページにmy.domain、バックエンドAPIにmy.domain/api/を定義します。

IP WhitelistがALLOW ACCESS FROM ANYWHEREの場合、バックエンドはMongoAtlas DBに接続できます。

しかし、そのオプションを削除してmy.domainと一致するIPを追加すると(ダブルチェック、ping my.domainはまったく同じIPです)、バックエンドは次のエラーでデータベースを見つけることができませんでした:

 MongoNetworkError: connection 4 to closed https....
 

何か不足している情報がある場合は、私に知らせてください。アドバイスをいただければ幸いです!

もう1つの疑いは、VPCネットワークに1つの静的IPと3つの一時IPがあることです。私はそれがロードバランサIPを持つ3つのノードを意味すると思います。バックエンドがMongoAtlasバックエンドに接続するために一時IPを使用する場合は、ノードをチェックしてそのノードを静的にするポッドをチェックする必要がありますが、これはKubernetesに

  ベストアンサー

私が使用した解決策は、 NAT です。 概念は、1-Google Compute Engine InstanceをNATゲートウェイとして確立し、すべての出口を静的IPにマッピングすることです。ああ、最も重要なのは、上記のすべてのステップは手動設定する必要はなく、ドキュメントに従うだけで、すべてが期待どおりに動作するはずです。

STATIC_ADDRESS OTA問題がある場合は、ZONEとREGIONを任意のQUOTA残留領域に変更することができます。私の場合、オリジナルサービスとしてNATとus-westを使用します。

  同じタグがついた質問を見る

mongoosekubernetesgoogle-cloud-platformgoogle-kubernetes-engine