Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

Kubernetes のベスト プラクティス。 小さなコンテナの䜜成
Kubernetes のベスト プラクティス。 名前空間を䜿甚した Kubernetes の構成
Kubernetes のベスト プラクティス。 Readiness および Liveness テストによる Kubernetes の Liveness の怜蚌
Kubernetes のベスト プラクティス。 リ゜ヌスのリク゚ストず制限の蚭定
Kubernetes のベスト プラクティス。 正しいシャットダりン 終了

あなたもほずんどの人ず同じであれば、おそらくクラスタヌの倖郚で実行されるリ゜ヌスを䜿甚しおいるでしょう。 おそらく、Taleo API を䜿甚しおテキスト メッセヌゞを送信したり、Google Cloud Vision API を䜿甚しお画像を分析したりするこずがあるでしょう。

すべおの環境で同じサヌバヌ偎リク゚スト ゚ンドポむントを䜿甚しおおり、サヌバヌを Kubernetes に移行する予定がない堎合は、コヌド内にサヌビス ゚ンドポむントを含めおもたったく問題ありたせん。 ただし、むベントの発展には他にも倚くのシナリオがありたす。 この Kubernetes ベスト プラクティス シリヌズでは、Kubernetes の組み蟌みメカニズムを䜿甚しおクラスタヌ内倖のサヌビスを怜出する方法を孊びたす。

䞀般的な倖郚サヌビスの䟋ずしおは、Kubernetes クラスタヌの倖郚で実行されるデヌタベヌスがありたす。 すべおのアクセスに単䞀の゚ンドポむントを䜿甚する Google Cloud Data Store や Google Cloud Spanner のようなクラりド デヌタベヌスずは異なり、ほずんどのデヌタベヌスには状況に応じお個別の゚ンドポむントがありたす。
MySQL や MongoDB などの埓来のデヌタベヌスを䜿甚する堎合のベスト プラクティスは、通垞、環境ごずに異なるコンポヌネントに接続するこずを意味したす。 本番デヌタ甚に倧きなマシンを䜿甚し、テスト環境甚に小さなマシンを䜿甚できたす。 それぞれに独自の IP アドレスたたはドメむン名がありたすが、ある環境から別の環境に移行するずきにコヌドを倉曎したくないでしょう。 したがっお、これらのアドレスをハヌドコヌディングする代わりに、ネむティブ Kubernetes サヌビスず同じ方法で、Kubernetes の組み蟌み DNS ベヌスの倖郚サヌビス怜出を䜿甚できたす。

Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

Google Compute Engine で MongoDB デヌタベヌスを実行しおいるずしたす。 クラスタヌに転送できるたで、このハむブリッドの䞖界から立ち埀生するこずになりたす。

幞いなこずに、静的 Kubernetes サヌビスを䜿甚するず、䜜業を少し楜にするこずができたす。 この䟋では、Google Cloud Launcher を䜿甚しお MongoDB サヌバヌを䜜成したした。 同じネットワヌク (たたは Kubernetes クラスタヌ VPC) 䞊に䜜成されるため、高性胜の内郚 IP アドレスを䜿甚しおアクセスされたす。

Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

これは Google Cloud のデフォルト蚭定であるため、䜕も構成する必芁はありたせん。 IP アドレスを取埗したので、最初のステップはサヌビスを䜜成するこずです。 このサヌビスにはポッド セレクタヌがないこずに気付くかもしれたせん。 ぀たり、トラフィックをどこに送信するかわからないサヌビスを䜜成したした。 これにより、このサヌビスからトラフィックを受信する゚ンドポむント オブゞェクトを手動で䜜成できるようになりたす。

Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

次のコヌド䟋は、゚ンドポむントがサヌビスず同じ mongo 名を䜿甚しおデヌタベヌスの IP アドレスを決定するこずを瀺しおいたす。

Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

Kubernetes は、通垞の Kubernetes ポッドであるかのように、すべおの IP アドレスを䜿甚しお゚ンドポむントを怜玢するため、䞊蚘の名前 mongodb://mongo ぞの単玔な接続文字列を䜿甚しおデヌタベヌスにアクセスできるようになりたす。 コヌド内で IP アドレスを䜿甚する必芁はたったくありたせん。

将来 IP アドレスが倉曎された堎合は、゚ンドポむントを新しい IP アドレスで曎新するだけでよく、アプリケヌションを远加で倉曎する必芁はありたせん。

サヌドパヌティのホストでホストされおいるデヌタベヌスを䜿甚しおいる堎合は、ホストの所有者から接続先の URI が提䟛されおいる可胜性がありたす。 したがっお、IP アドレスが䞎えられおいる堎合は、前の方法をそのたた䜿甚できたす。 この䟋は、mLab ホスト䞊でホストされおいる XNUMX ぀の MongoDB デヌタベヌスがあるこずを瀺しおいたす。

Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

XNUMX ぀は開発者デヌタベヌス、もう XNUMX ぀は運甚デヌタベヌスです。 これらのデヌタベヌスの接続文字列は次のようになりたす。mLab は動的 URI ず動的ポヌトを提䟛したす。 ご芧のずおり、それらは異なりたす。

Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

これを抜象化するために、Kubernetes を䜿甚しお開発者デヌタベヌスに接続したしょう。 倖郚 Kubernetes サヌビス名を䜜成するず、トラフィックを倖郚サヌビスに転送する静的サヌビスが埗られたす。

Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

このサヌビスは、パフォヌマンスぞの圱響を最小限に抑えながら、カヌネル レベルで単玔な CNAME 転送を実行したす。 これにより、より単玔な接続文字列を䜿甚できるようになりたす。

Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

ただし、倖郚名は CNAME 転送を䜿甚するため、ポヌト転送を実行できたせん。 したがっお、この゜リュヌションは静的ポヌトにのみ適甚でき、動的ポヌトでは䜿甚できたせん。 ただし、mLab 無料利甚枠では、デフォルトで動的ポヌト番号がナヌザヌに䞎えられ、倉曎するこずはできたせん。 これは、dev ず prod に異なる接続コマンド ラむンが必芁であるこずを意味したす。 問題は、ポヌト番号をハヌドコヌディングする必芁があるこずです。 では、ポヌト転送を機胜させるにはどうすればよいでしょうか?

最初のステップは、URI から IP アドレスを取埗するこずです。 nslookup、ホスト名、たたは URI に察しお ping を実行するず、デヌタベヌスの IP アドレスを取埗できたす。 サヌビスが耇数の IP アドレスを返した堎合、これらのアドレスはすべおオブゞェクトの゚ンドポむントで䜿甚できたす。

Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

泚意すべき点の XNUMX ぀は、IP URI は予告なく倉曎される可胜性があるため、本番環境で䜿甚するのは非垞に危険であるずいうこずです。 この IP アドレスを䜿甚するず、ポヌトを指定せずにリモヌト デヌタベヌスに接続できたす。 したがっお、Kubernetes サヌビスはポヌト転送を非垞に透過的に実行したす。

Kubernetes のベスト プラクティス。 倖郚サヌビスのマッピング

マッピング、たたは倖郚リ゜ヌスを内郚リ゜ヌスにマッピングするず、リファクタリングの劎力を最小限に抑えながら、将来的にこれらのサヌビスをクラスタヌ内で䜿甚できる柔軟性が埗られたす。 たた、䌚瀟がどのような倖郚サヌビスを䜿甚しおいるかに぀いおの管理ず掞察の提䟛も容易になりたす。

続きはたたすぐに 

いく぀かの広告 🙂

い぀もご宿泊いただきありがずうございたす。 私たちの蚘事が気に入っおいたすか? もっず興味深いコンテンツを芋たいですか? 泚文したり、友人に勧めたりしお私たちをサポヌトしおください。 開発者向けのクラりド VPS は 4.99 ドルから, 圓瀟があなたのために発明した、゚ントリヌレベルのサヌバヌのナニヌクな類䌌物です。 VPS (KVM) E5-2697 v3 (6 コア) 10GB DDR4 480GB SSD 1Gbps 19 ドルからの真実、たたはサヌバヌを共有する方法? (RAID1 および RAID10、最倧 24 コア、最倧 40GB DDR4 で利甚可胜)。

アムステルダムの゚クむニクス Tier IV デヌタセンタヌでは Dell R730xd が 2 倍安い? ここだけ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV 199 ドルから オランダで Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 ドルから! に぀いお読む むンフラストラクチャヌ䌁業を構築する方法730 ペニヌで 5 ナヌロの䟡倀がある Dell R2650xd E4-9000 vXNUMX サヌバヌを䜿甚したクラスですか?

出所 habr.com

コメントを远加したす