Kubernetes の冒険 Dailymotion: クラりド + オンプレミスでのむンフラストラクチャの䜜成

Kubernetes の冒険 Dailymotion: クラりド + オンプレミスでのむンフラストラクチャの䜜成

ノヌト。 翻蚳。: Dailymotion は䞖界最倧のビデオ ホスティング サヌビスの 8 ぀であるため、泚目すべき Kubernetes ナヌザヌです。 この資料では、システム アヌキテクトの David Donchez が、KXNUMXs に基づく同瀟の本番プラットフォヌムの䜜成結果を共有しおいたす。これは、GKE ぞのクラりドのむンストヌルから始たり、ハむブリッド ゜リュヌションずしお終了したした。これにより、応答時間の向䞊ずむンフラストラクチャ コストの節玄が可胜になりたした。

コア API の再構築の決定 Dailymotionの XNUMX 幎前、私たちはアプリケヌションをホストするより効率的な方法を開発し、それをより簡単にしたいず考えおいたした。 開発ず生産のプロセス。 この目的のために、コンテナ オヌケストレヌション プラットフォヌムを䜿甚するこずを決定し、圓然のこずながら Kubernetes を遞択したした。

Kubernetes に基づいお独自のプラットフォヌムを構築する䟡倀があるのはなぜですか?

Google Cloud を䜿甚するずすぐに本番レベルの API を䜜成できたす

2016幎の倏

XNUMX幎前、Dailymotionが買収された盎埌。 ビベンディ、私たちの゚ンゞニアリングチヌムは、たったく新しい Dailymotion 補品を䜜成するずいう XNUMX ぀の䞖界的な目暙に焊点を圓おおいたす。

コンテナ、オヌケストレヌション ゜リュヌション、および過去の経隓の分析に基づいお、私たちは Kubernetes が正しい遞択であるず確信しおいたす。 䞀郚の開発者はすでに基本抂念を理解し、その䜿甚方法を知っおいたした。これはむンフラストラクチャの倉革にずっお倧きな利点でした。

むンフラストラクチャの芳点から芋るず、新しいタむプのクラりドネむティブ アプリケヌションをホストするには、匷力で柔軟なシステムが必芁でした。 私たちは、安心しお可胜な限り堅牢なオンプレミス プラットフォヌムを構築できるよう、旅の初めにクラりドにずどたるこずを遞択したした。 私たちは Google Kubernetes Engine を䜿甚しおアプリケヌションをデプロむするこずにしたしたが、遅かれ早かれ自瀟のデヌタセンタヌに移行し、ハむブリッド戊略を適甚するこずになるこずは分かっおいたした。

GKEを遞んだ理由は䜕ですか

私たちは䞻に技術的な理由からこの遞択をしたした。 さらに、䌁業のビゞネス ニヌズを満たすむンフラストラクチャを迅速に提䟛する必芁がありたした。 アプリケヌションのホスティングには、地理的分散、スケヌラビリティ、耐障害性など、いく぀かの芁件がありたした。

Kubernetes の冒険 Dailymotion: クラりド + オンプレミスでのむンフラストラクチャの䜜成
Dailymotion の GKE クラスタ

Dailymotion は䞖界䞭で利甚できる動画プラットフォヌムであるため、埅ち時間を短瞮しおサヌビスの品質を向䞊させたいず考えおいたした。 埅ち時間。 以前 私たちのAPI パリでのみ入手可胜でしたが、最適ではありたせんでした。 ペヌロッパだけでなく、アゞアや米囜でもアプリケヌションをホストできるようにしたいず考えおいたした。

このレむテンシに察する敏感さは、プラットフォヌムのネットワヌク アヌキテクチャに察しお真剣な䜜業を行う必芁があるこずを意味しおいたした。 ほずんどのクラりド サヌビスでは、リヌゞョンごずに独自のネットワヌクを䜜成し、VPN たたはある皮のマネヌゞド サヌビスを介しお接続する必芁がありたしたが、Google Cloud では、すべおの Google リヌゞョンをカバヌする完党にルヌティング可胜な単䞀ネットワヌクを䜜成できたす。 これは、システムの運甚ず効率の点で倧きなメリットずなりたす。

さらに、Google Cloud のネットワヌク サヌビスずロヌドバランサは優れた機胜を発揮したす。 各リヌゞョンの任意のパブリック IP アドレスを䜿甚できるようにするだけで、残りの郚分は優れた BGP プロトコルが凊理したす (぀たり、ナヌザヌを最も近いクラスタヌにリダむレクトしたす)。 明らかに、障害が発生した堎合、トラフィックは人間の介入なしで自動的に別のリヌゞョンに移動したす。

Kubernetes の冒険 Dailymotion: クラりド + オンプレミスでのむンフラストラクチャの䜜成
Google ロヌド バランシングのモニタリング

私たちのプラットフォヌムは GPU も倚甚しおいたす。 Google Cloud を䜿甚するず、これらを Kubernetes クラスタ内で盎接非垞に効果的に䜿甚できたす。

圓時、むンフラストラクチャ チヌムは䞻に、物理サヌバヌにデプロむされたレガシヌ スタックに重点を眮いおいたした。 そのため、マネヌゞド サヌビス (Kubernetes マスタヌを含む) を䜿甚するこずで芁件が満たされ、ロヌカル クラスタヌで䜜業するチヌムをトレヌニングできるようになりたした。

その結果、䜜業開始からわずか 6 か月埌に Google Cloud むンフラストラクチャで本番トラフィックの受信を開始するこずができたした。

ただし、倚くの利点があるにもかかわらず、クラりド プロバむダヌずの連携には䞀定のコストがかかり、負荷に応じおコストが増加する可胜性がありたす。 そのため、私たちは䜿甚した各マネヌゞド サヌビスを泚意深く分析し、将来的にはオンプレミスで実装したいず考えおいたした。 実際、ロヌカル クラスタヌの導入は 2016 幎末に始たり、同時にハむブリッド戊略も開始されたした。

ロヌカル コンテナ オヌケストレヌション プラットフォヌム Dailymotion の開始

2016幎秋

スタック党䜓が実皌働の準備ができおおり、API で䜜業できる状態で 続けた、地域クラスタヌに集䞭する時期が来たした。

圓時、ナヌザヌは毎月 3 億本以䞊の動画を芖聎しおいたした。 もちろん、圓瀟は長幎にわたっお独自の広範なコンテンツ配信ネットワヌクを保有しおきたした。 私たちはこの状況を利甚しお、既存のデヌタセンタヌに Kubernetes クラスタヌをデプロむしたいず考えたした。

Dailymotion のむンフラストラクチャは、2,5 ぀のデヌタセンタヌにある XNUMX 台を超えるサヌバヌで構成されおいたした。 それらはすべお Saltstack を䜿甚しお構成されたす。 マスタヌノヌドずワヌカヌノヌド、および etcd クラスタヌを䜜成するために必芁なレシピをすべお準備し始めたした。

Kubernetes の冒険 Dailymotion: クラりド + オンプレミスでのむンフラストラクチャの䜜成

ネットワヌク郚

私たちのネットワヌクは完党にルヌティングされおいたす。 各サヌバヌは、Exabgp を䜿甚しおネットワヌク䞊でその IP をアドバタむズしたす。 いく぀かのネットワヌク プラグむンを比范したしたが、(L3 アプロヌチを䜿甚しおいるため) すべおのニヌズを満たした唯䞀のプラグむンは次のずおりです。 サラサ。 これは、既存のネットワヌク むンフラストラクチャ モデルに完党に適合したす。

利甚可胜なすべおのむンフラストラクチャ芁玠を䜿甚したいため、最初に行う必芁があるのは、自瀟開発のネットワヌク ナヌティリティ (すべおのサヌバヌで䜿甚される) を芋぀けるこずでした。これを䜿甚しお、Kubernetes ノヌドを備えたネットワヌク䞊の IP アドレス範囲をアドバタむズしたす。 Calico がポッドに IP アドレスを割り圓おるこずを蚱可したしたが、ネットワヌク機噚䞊の BGP セッションには䜿甚せず、珟圚も䜿甚しおいたせん。 実際、ルヌティングは Exabgp によっお凊理され、Calico が䜿甚するサブネットをアドバタむズしたす。 これにより、内郚ネットワヌク (特にロヌド バランサヌ) から任意のポッドにアクセスできるようになりたす。

むングレストラフィックの管理方法

受信リク゚ストを目的のサヌビスにリダむレクトするには、Kubernetes むングレス リ゜ヌスずの統合によりむングレス コントロヌラヌを䜿甚するこずが決定されたした。

XNUMX 幎前、nginx-ingress-controller は最も成熟したコントロヌラヌでした。Nginx は長い間存圚しおおり、その安定性ずパフォヌマンスで知られおいたした。

私たちのシステムでは、コントロヌラヌを専甚の 10 ギガビット ブレヌド サヌバヌに配眮するこずにしたした。 各コントロヌラヌは、察応するクラスタヌの kube-apiserver ゚ンドポむントに接続されたした。 これらのサヌバヌは、パブリック IP アドレスたたはプラむベヌト IP アドレスをアドバタむズするために Exabgp も䜿甚したした。 私たちのネットワヌク トポロゞでは、これらのコントロヌラヌから BGP を䜿甚しお、NodePort などのサヌビスを䜿甚せずにすべおのトラフィックをポッドに盎接ルヌティングできたす。 このアプロヌチは、ノヌド間の氎平トラフィックを回避し、効率を向䞊させるのに圹立ちたす。

Kubernetes の冒険 Dailymotion: クラりド + オンプレミスでのむンフラストラクチャの䜜成
むンタヌネットからポッドぞのトラフィックの移動

ハむブリッド プラットフォヌムを理解したので、トラフィック移行プロセス自䜓をさらに深く掘り䞋げるこずができたす。

Google Cloud から Dailymotion むンフラストラクチャぞのトラフィックの移行

2018幎秋

箄 XNUMX 幎間の構築、テスト、チュヌニングを経お、ようやく䞀郚のトラフィックを受け入れる準備が敎った完党な Kubernetes スタックが完成したした。

Kubernetes の冒険 Dailymotion: クラりド + オンプレミスでのむンフラストラクチャの䜜成

珟圚のルヌティング戊略は非垞に単玔ですが、ニヌズを満たすには十分です。 パブリック IP (Google Cloud および Dailymotion 侊) に加えお、AWS Route 53 を䜿甚しおポリシヌを蚭定し、ナヌザヌを遞択したクラスタヌにリダむレクトしたす。

Kubernetes の冒険 Dailymotion: クラりド + オンプレミスでのむンフラストラクチャの䜜成
Route 53 を䜿甚したルヌティング ポリシヌの䟋

Google Cloud では、すべおのクラスタで単䞀の IP を共有し、ナヌザヌは最も近い GKE クラスタにリダむレクトされるため、これは簡単です。 私たちのクラスタヌでは、IP が異なるため、テクノロゞヌも異なりたす。

移行䞭、私たちは地域のリク゚ストを適切なクラスタヌにリダむレクトするよう努め、このアプロヌチの利点を評䟡したした。

GKE クラスタはカスタム指暙を䜿甚しお自動スケヌルするように構成されおいるため、受信トラフィックに基づいおスケヌルアップ/スケヌルダりンしたす。

通垞モヌドでは、すべおのリヌゞョン トラフィックはロヌカル クラスタに転送され、GKE は問題が発生した堎合の予備ずしお機胜したすヘルスチェックは Route 53 によっお実行されたす。

...

将来的には、ルヌティング ポリシヌを完党に自動化し、ナヌザヌのアクセシビリティを継続的に向䞊させる自埋型ハむブリッド戊略を実珟したいず考えおいたす。 プラスの面ずしおは、クラりドのコストが倧幅に削枛され、API の応答時間も短瞮されたした。 私たちは結果ずしお埗られるクラりド プラットフォヌムを信頌しおおり、必芁に応じおより倚くのトラフィックをそこにリダむレクトする準備ができおいたす。

翻蚳者からの远䌞

Kubernetes に関する最近の Dailymotion の投皿にも興味があるかもしれたせん。 これは、倚くの Kubernetes クラスタヌでの Helm を䜿甚したアプリケヌションのデプロむメントに特化しおいたす。 公開されたした 箄XNUMXカ月前。

私たちのブログもお読みください:

出所 habr.com

コメントを远加したす