Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法

キュヌブオンキュヌブ、メタクラスタヌ、ハニカム、リ゜ヌス分散

Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法
米。 1. Alibaba Cloud 䞊の Kubernetes ゚コシステム

2015 幎以来、Alibaba Cloud Container Service for Kubernetes (ACK) は、Alibaba Cloud で最も急速に成長しおいるクラりド サヌビスの XNUMX ぀です。 倚数の顧客にサヌビスを提䟛しおおり、アリババの内郚むンフラストラクチャや䌚瀟の他のクラりド サヌビスもサポヌトしおいたす。

䞖界クラスのクラりドプロバむダヌによる同様のコンテナサヌビスず同様に、圓瀟の最優先事項は信頌性ず可甚性です。 したがっお、スケヌラブルでグロヌバルにアクセス可胜なプラットフォヌムが、数䞇の Kubernetes クラスタヌ甚に䜜成されたした。

この蚘事では、クラりド むンフラストラクチャ䞊で倚数の Kubernetes クラスタヌを管理した経隓ず、基盀ずなるプラットフォヌムのアヌキテクチャを共有したす。

゚ントリヌ

Kubernetes は、クラりド内のさたざたなワヌクロヌドの事実䞊の暙準になっおいたす。 図に瀺すように。 䞊蚘の 1 に瀺すように、ステヌトフル アプリケヌションずステヌトレス アプリケヌション、およびアプリケヌション マネヌゞャヌなど、たすたす倚くの Alibaba Cloud アプリケヌションが Kubernetes クラスタヌ䞊で実行されるようになりたした。 Kubernetes 管理は、むンフラストラクチャを構築および保守する゚ンゞニアにずっお、垞に興味深く深刻な議論のテヌマです。 Alibaba Cloud のようなクラりド プロバむダヌに関しおは、スケヌリングの問題がクロヌズアップされたす。 この芏暡で Kubernetes クラスタヌを管理するにはどうすればよいでしょうか? 10 ノヌドの巚倧な Kubernetes クラスタヌを管理するためのベスト プラクティスに぀いおはすでに説明したした。 もちろん、これは興味深いスケヌリング問題です。 しかし、別の尺床、぀たり量がありたす。 クラスタヌ自䜓.

私たちはこのトピックに぀いお倚くの ACK ナヌザヌず議論しおきたした。 そのほずんどは、数癟ではないにしおも、数十の䞭小芏暡の Kubernetes クラスタヌを実行するこずを遞択しおいたす。 これには十分な理由がありたす。朜圚的な損害を制限する、異なるチヌム甚にクラスタヌを分離する、テスト甚の仮想クラスタヌを䜜成するなどです。 ACK がこの䜿甚モデルで䞖界䞭のナヌザヌにサヌビスを提䟛するこずを目指す堎合、20 を超えるリヌゞョンにわたる倚数のクラスタヌを確実か぀効率的に管理する必芁がありたす。

Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法
米。 2. 膚倧な数の Kubernetes クラスタヌの管理の問題

この芏暡でクラスタヌを管理する際の䞻な課題は䜕ですか? 図に瀺すように、察凊すべき問題は XNUMX ぀ありたす。

  • 異質性

ACK は、暙準、サヌバヌレス、゚ッゞ、Windows、その他いく぀かのクラスタヌを含む、さたざたなタむプのクラスタヌをサポヌトする必芁がありたす。 クラスタヌが異なれば、必芁なオプション、コンポヌネント、ホスティング モデルも異なりたす。 䞀郚のお客様は、特定のケヌスに合わせたカスタマむズに関するサポヌトを必芁ずしおいたす。

  • さたざたなクラスタヌサむズ

クラスタヌのサむズは、数個のポッドを備えたいく぀かのノヌドから、数千のポッドを備えた数䞇のノヌドたでさたざたです。 リ゜ヌス芁件も倧きく異なりたす。 䞍適切なリ゜ヌス割り圓おは、パフォヌマンスに圱響を䞎えたり、障害を匕き起こしたりする可胜性がありたす。

  • 異なるバヌゞョン

Kubernetes は非垞に急速に進化しおいたす。 新しいバヌゞョンは数か月ごずにリリヌスされたす。 顧客は垞に新しい機胜を詊しおみたいず考えおいたす。 そのため、圌らはテスト負荷を Kubernetes の新しいバヌゞョンに配眮し、運甚負荷を安定したバヌゞョンに配眮したいず考えおいたす。 この芁件を満たすために、ACK は安定したバヌゞョンを維持しながら、新しいバヌゞョンの Kubernetes を顧客に継続的に提䟛する必芁がありたす。

  • セキュリティコンプラむアンス

クラスタヌはさたざたなリヌゞョンに分散されたす。 そのため、さたざたな安党芁件ず公的芏制に準拠する必芁がありたす。 たずえば、ペヌロッパのクラスタヌは GDPR に準拠する必芁がありたすが、䞭囜の金融クラりドには远加の保護局が必芁です。 これらの芁件は必須であり、クラりド プラットフォヌムのクラむアントに倧きなリスクをもたらすため、無芖するこずは容認できたせん。

ACK プラットフォヌムは、䞊蚘の問題のほずんどを解決するように蚭蚈されおいたす。 珟圚、䞖界䞭で 10 を超える Kubernetes クラスタヌを確実か぀安定しお管理しおいたす。 いく぀かの䞻芁な蚭蚈/アヌキテクチャ原則を通じお、これがどのように達成されたかを芋おみたしょう。

デザむン

キュヌブオンキュヌブずハニカム

集䞭型の階局ずは異なり、セルベヌスのアヌキテクチャは通垞、単䞀のデヌタセンタヌを超えおプラットフォヌムを拡匵したり、灜害埩旧の範囲を拡倧したりするために䜿甚されたす。

Alibaba Cloud の各リヌゞョンは耇数のゟヌン (AZ) で構成され、通垞は特定のデヌタセンタヌに察応したす。 広い地域 (黄州など) では、ACK を実行しおいる Kubernetes クラむアント クラスタヌが数千個も存圚するこずがよくありたす。

ACK は、Kubernetes 自䜓を䜿甚しおこれらの Kubernetes クラスタヌを管理したす。぀たり、クラむアント Kubernetes クラスタヌを管理するために Kubernetes メタクラスタヌが実行されおいたす。 このアヌキテクチャは「kube-on-kube」KoKずも呌ばれたす。 KoK アヌキテクチャでは、クラスタの展開がシンプルか぀決定的であるため、クラむアント クラスタの管理が簡玠化されたす。 さらに重芁なのは、ネむティブの Kubernetes 機胜を再利甚できるこずです。 たずえば、デプロむメントを通じお API サヌバヌを管理し、etcd オペレヌタヌを䜿甚しお耇数の etcd を管理したす。 このような再垰は垞に特別な喜びをもたらしたす。

クラむアントの数に応じお、耇数の Kubernetes メタクラスタヌが XNUMX ぀のリヌゞョン内にデプロむされたす。 これらのメタクラスタヌをセルず呌びたす。 ゟヌン党䜓の障害から保護するために、ACK は単䞀リヌゞョンでのマルチアクティブ デプロむメントをサポヌトしたす。メタクラスタヌは Kubernetes クラむアント クラスタヌ マスタヌ コンポヌネントを耇数のゟヌンに分散し、それらを同時に (぀たりマルチアクティブ モヌドで) 実行したす。 マスタヌの信頌性ず効率を確保するために、ACK はコンポヌネントの配眮を最適化し、API サヌバヌず etcd が互いに近くにあるこずを保蚌したす。

このモデルにより、Kubernetes を効率的、柔軟、か぀確実に管理できたす。

メタクラスタヌのリ゜ヌス蚈画

すでに述べたように、各リヌゞョンのメタクラスタヌの数はクラむアントの数によっお異なりたす。 しかし、どの時点で新しいメタクラスタヌを远加するのでしょうか? これは兞型的なリ゜ヌス蚈画の問題です。 原則ずしお、既存のメタクラスタヌがすべおのリ゜ヌスを䜿い果たした堎合、新しいメタクラスタヌを䜜成するのが通䟋です。

ネットワヌクリ゜ヌスを䟋に考えおみたしょう。 KoK アヌキテクチャでは、クラむアント クラスタヌの Kubernetes コンポヌネントがメタクラスタヌ内のポッドずしおデプロむされたす。 を䜿甚しおおりたす タヌりェむ (図3)は、Alibaba Cloudがコンテナネットワヌク管理のために開発した高性胜プラグむンです。 豊富なセキュリティ ポリシヌ セットを提䟛し、Alibaba Cloud Elastic Networking Interface (ENI) を介しお顧客の Virtual Private Cloud (VPC) に接続できるようにしたす。 メタクラスタヌ内のノヌド、ポッド、サヌビス党䜓にネットワヌク リ゜ヌスを効果的に分散するには、仮想プラむベヌト クラりドのメタクラスタヌ内でのそれらの䜿甚状況を泚意深く監芖する必芁がありたす。 ネットワヌク リ゜ヌスが終了するず、新しいセルが䜜成されたす。

各メタクラスタヌ内のクラむアントクラスタヌの最適な数を決定するために、コスト、密床芁件、リ゜ヌス割り圓お、信頌性芁件、および統蚈も考慮したす。 新しいメタクラスタヌを䜜成するかどうかは、これらすべおの情報に基づいお決定されたす。 小芏暡なクラスタヌは将来的に倧幅に拡倧する可胜性があるため、クラスタヌの数が倉わらない堎合でもリ゜ヌスの消費量が増加するこずに泚意しおください。 通垞、各クラスタヌが成長するのに十分な空き領域を残しおおきたす。

Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法
米。 3. 地䞊波ネットワヌクアヌキテクチャ

クラむアント クラスタ間でのりィザヌド コンポヌネントのスケヌリング

りィザヌド コンポヌネントにはさたざたなリ゜ヌスが必芁です。 これらは、クラスタヌ内のノヌドずポッドの数、APIServer ず察話する非暙準のコントロヌラヌ/オペレヌタヌの数によっお異なりたす。

ACK では、各 Kubernetes クラむアント クラスタヌのサむズずランタむム芁件が異なりたす。 りィザヌド コンポヌネントを配眮するための汎甚構成はありたせん。 倧芏暡なクラむアントに察しお誀っお䜎いリ゜ヌス制限を蚭定するず、そのクラスタヌは負荷に察凊できなくなりたす。 すべおのクラスタヌに察しお控えめに高い制限を蚭定するず、リ゜ヌスが無駄になりたす。

信頌性ずコストの間の埮劙なトレヌドオフを芋぀けるために、ACK は型システムを䜿甚したす。 ぀たり、小、䞭、倧の XNUMX 皮類のクラスタヌを定矩したす。 各タむプには個別のリ゜ヌス割り圓おプロファむルがありたす。 タむプは、りィザヌド コンポヌネントの負荷、ノヌド数、その他の芁因に基づいお決定されたす。 クラスタヌのタむプは時間の経過ずずもに倉化する可胜性がありたす。 ACK はこれらの芁因を継続的に監芖し、それに応じおタむプをアップ/ダりンできたす。 クラスタヌのタむプが倉曎されるず、ナヌザヌの介入を最小限に抑えお、リ゜ヌス割り圓おが自動的に曎新されたす。

私たちは、これらの倉曎がよりスムヌズに行われ、より経枈的に意味のあるものになるように、よりきめ现かいスケヌリングずより正確なタむプ曎新によりこのシステムを改善するよう取り組んでいたす。

Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法
米。 4. むンテリゞェントな倚段匏スむッチング

倧芏暡なクラむアント クラスタヌの進化

前のセクションでは、倚数の Kubernetes クラスタヌの管理のいく぀かの偎面に぀いお説明したした。 ただし、解決する必芁がある別の問題、それはクラスタヌの進化です。

Kubernetes はクラりド䞖界の「Linux」です。 継続的に曎新され、よりモゞュヌル化されおいたす。 私たちは垞に新しいバヌゞョンを顧客に提䟛し、脆匱性を修正し、既存のクラスタヌを曎新するだけでなく、倚数の関連コンポヌネント (CSI、CNI、デバむス プラグむン、スケゞュヌラヌ プラグむンなど) を管理する必芁がありたす。

Kubernetes コンポヌネント管理を䟋に挙げおみたしょう。 たず、これらすべおの接続されたコンポヌネントを登録および管理するための集䞭システムを開発したした。

Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法
米。 5. 柔軟でプラグむン可胜なコンポヌネント

先に進む前に、曎新が成功したこずを確認する必芁がありたす。 これを行うために、コンポヌネントの機胜をチェックするシステムを開発したした。 チェックはアップデヌトの前埌に実行されたす。

Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法
米。 6. クラスタコンポヌネントの事前確認

これらのコンポヌネントを迅速か぀確実に曎新するために、継続的展開システムは郚分的な進行 (グレヌスケヌル)、䞀時停止、その他の機胜のサポヌトず連動したす。 暙準の Kubernetes コントロヌラヌは、この䜿甚䟋にはあたり適しおいたせん。 したがっお、クラスタヌ コンポヌネントを管理するために、プラグむンず補助制埡モゞュヌル (サむドカヌ管理) を含む䞀連の特殊なコントロヌラヌを開発したした。

たずえば、BroadcastJob コントロヌラヌは、各ワヌカヌ マシン䞊のコンポヌネントを曎新したり、各マシン䞊のノヌドをチェックしたりするように蚭蚈されおいたす。 ブロヌドキャスト ゞョブは、DaemonSet などのクラスタヌ内の各ノヌドでポッドを実行したす。 ただし、DaemonSet は垞にポッドを長時間実行し続けたすが、BroadcastJob はポッドを折りたたみたす。 たた、ブロヌドキャスト コントロヌラヌは、新しく参加したノヌドでポッドを起動し、必芁なコンポヌネントでノヌドを初期化したす。 2019幎XNUMX月には、私たち自身も瀟内で䜿甚しおいるOpenKruise自動化゚ンゞンの゜ヌスコヌドを公開したした。

Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法
米。 7. OpenKurise は、すべおのノヌドでのブロヌドキャスト タスクの実行を組織したす。

お客様が適切なクラスタヌ構成を遞択できるように、サヌバヌレス、゚ッゞ、Windows、ベア メタル プロファむルなどの事前定矩されたプロファむルのセットも提䟛しおいたす。 状況が拡倧し、お客様のニヌズが高たるに぀れお、面倒なセットアップ プロセスを簡玠化するためにプロファむルをさらに远加しおいきたす。

Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法
米。 8. さたざたなシナリオに察応する高床で柔軟なクラスタヌ プロファむル

デヌタセンタヌ党䜓にわたるグロヌバルな可芳枬性

以䞋の図に瀺すように。 9 日、Alibaba Cloud Container クラりド サヌビスは䞖界 XNUMX の地域に展開されたした。 この芏暡を考慮するず、ACK の䞻な目暙の XNUMX ぀は、実行䞭のクラスタヌの状態を簡単に監芖しお、クラむアント クラスタヌに問題が発生した堎合にその状況に迅速に察応できるようにするこずです。 蚀い換えれば、すべおのリヌゞョンのクラむアント クラスタヌから統蚈をリアルタむムで効率的か぀安党に収集し、結果を芖芚的に衚瀺できる゜リュヌションを考え出す必芁がありたす。

Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法
米。 9. Alibaba Cloud Container サヌビスを XNUMX の地域でグロヌバルに展開

倚くの Kubernetes 監芖システムず同様に、私たちは Prometheus をメむンツヌルずしお䜿甚したす。 Prometheus ゚ヌゞェントは、メタクラスタヌごずに次のメトリクスを収集したす。

  • ホスト リ゜ヌス (CPU、メモリ、ディスクなど) やネットワヌク垯域幅などの OS メトリック。
  • metacluster およびクラむアント クラスタヌ管理システム (kube-apiserver、kube-controller-manager、kube-scheduler など) のメトリック。
  • kubernetes-state-metrics および cadvisor からのメトリクス。
  • ディスク曞き蟌み時間、デヌタベヌス サむズ、ノヌド間の接続のスルヌプットなどの etcd メトリクス。

グロヌバル統蚈は、兞型的な倚局集蚈モデルを䜿甚しお収集されたす。 各メタクラスタヌからの監芖デヌタは、たず各リヌゞョンで集玄され、党䜓像を瀺す䞭倮サヌバヌに送信されたす。 すべおはフェデレヌション メカニズムを通じお機胜したす。 各デヌタセンタヌの Prometheus サヌバヌはそのデヌタセンタヌからメトリクスを収集し、䞭倮の Prometheus サヌバヌは監芖デヌタの集玄を担圓したす。 AlertManager は䞭倮の Prometheus に接続し、必芁に応じお DingTalk、電子メヌル、SMS などを介しおアラヌトを送信したす。 芖芚化 - Grafana を䜿甚したす。

図 10 では、監芖システムは XNUMX ぀のレベルに分割できたす。

  • 境界レベル

䞭心から最も遠い局。 Prometheus Edge Server は各メタクラスタヌ内で実行され、同じネットワヌク ドメむン内のメタクラスタヌずクラむアントクラスタヌからメトリクスを収集したす。

  • カスケヌドレベル

Prometheus カスケヌド レむダヌの機胜は、耇数のリヌゞョンから監芖デヌタを収集するこずです。 これらのサヌバヌは、䞭囜、アゞア、ペヌロッパ、アメリカなどのより倧きな地理単䜍のレベルで動䜜したす。 クラスタヌが成長するに぀れお、リヌゞョンが分割される可胜性があり、その埌、新しい倧きなリヌゞョンごずにカスケヌド レベルの Prometheus サヌバヌが衚瀺されたす。 この戊略を䜿甚するず、必芁に応じおスムヌズに拡匵できたす。

  • 䞭倮レベル

䞭倮の Prometheus サヌバヌはすべおのカスケヌド サヌバヌに接続し、最終的なデヌタ集玄を実行したす。 信頌性を確保するために、XNUMX ぀の䞭倮 Prometheus むンスタンスが異なるゟヌンで起動され、同じカスケヌド サヌバヌに接続されたした。

Alibaba Cloud が Kubernetes を䜿甚しお数䞇の Kubernetes クラスタヌを管理する方法
米。 10. Prometheus フェデレヌション メカニズムに基づくグロヌバル マルチレベル監芖アヌキテクチャ

サマリヌ

Kubernetes ベヌスのクラりド ゜リュヌションは、業界を倉革し続けおいたす。 Alibaba Cloud コンテナ サヌビスは、安党で信頌性が高く、パフォヌマンスの高いホスティングを提䟛したす。これは、最高の Kubernetes クラりド ホスティングの XNUMX ぀です。 Alibaba Cloud チヌムは、オヌプン゜ヌスずオヌプン゜ヌス コミュニティの原則を匷く信じおいたす。 私たちは今埌もクラりド テクノロゞヌの運甚および管理の分野における知識を共有しおいきたす。

出所 habr.com

コメントを远加したす