Kubernetesネットワークと監視技術の包括的な説明

Kubernetesネットワークと監視技術の包括的な説明
  • 宇宙文明の技術的進歩は、制御できるエネルギーの総量と密接に関係しています。文明の発展は、低いものから高いものの順に 3 つのタイプに分類できます。タイプ 1 は、惑星の資源を最大限に活用できるものです。タイプ 2、星系全体からエネルギーを収集可能。タイプ3、銀河系のエネルギーを活用可能。

—天体物理学者ニコライ・カルダシェフ、1964年

リソース利用の観点から分類すると、クラウド コンピューティングは次の 2 つのタイプに分けられます。タイプ 1: 従来の仮想化に基づいて構築されたクラウド。これは、現在ほとんどのクラウドの形式です。タイプ 2: コンテナ上に構築されたクラウド。これはクラウドの必然的な未来です。コンテナのリソース使用率は桁違いに向上し、さらに重要なことに、粒度がより細かくなり、自動化の度合いが高くなります。コンテナは従来の仮想化よりも何百倍も効率的であり、その人気は止まるところを知りません。

タイプが高ければ高いほど、複雑さも増します。著者は、ネットワークと監視の面でコンテナ クラウドが直面している大きな課題について特に懸念しています。

1. コンテナ向け一般的なネットワークソリューションの概要と比較

コンテナには、Docker が提案する CNM (Container Network Model) と CoreOS が提案する CNI (Container Network Interface) という 2 つの一般的なネットワーク標準があります。

1. CNMの紹介

Libnetwork は CNM 仕様の標準的な実装です。 Libnetwork は、Docker デーモンとネットワーク ドライバー間のインターフェースを提供します。ネットワーク コントローラーは、ドライバーとネットワークをペアリングする役割を担います。各ドライバーは、そのネットワークに提供されるサービスを含め、所有するネットワークの管理を担当します。ネットワークごとに 1 つのドライバーがあり、複数のネットワークに接続されたコンテナーでは複数のドライバーを同時に使用できます。


Libnetwork は、Docker デーモンとネットワーク ドライバー間のインターフェースを提供します。画像ソース: thenewstack

2. CNIの概要

[[268659]]

CNI は、Linux コンテナでネットワーク インターフェイスを構成するためのプラグインを作成するための Cloud Native Computing Foundation (CNCF) の公式プロジェクトになりました。 CNI はコンテナのネットワーク接続のみを考慮し、コンテナが削除されると割り当てられたリソースを削除します。 CNI は幅広いサポートを提供し、仕様は実装が容易で、サードパーティのプラグインをサポートします。


CNI は、ネットワークからコンテナを追加および削除するための最小仕様です。画像ソース: thenewstack.io

現在、主流のコンテナクラウドはすべてKubernetesをベースに構築されており、CNIはKubernetesが採用しているネットワーク標準でもあります。一般的な CNI ネットワーク プラグインは次のとおりです。


写真はインターネットからのもの。出典は不明。

1) 一般的なCNIプラグインの紹介

  • Calico: Calico は、純粋な L3 アプローチを使用して、シンプルでスケーラブルなネットワークを提供します。 Calico はステートレス IP-in-IP モードも提供します。 Calico は、スケーラブルなネットワークに加えて、ポリシーの分離も提供します。 Calico は、BGP (オーバーレイは不要) をベースにした純粋な 3 層データ センター ネットワーク ソリューションです。
  • Flannel: Flannel は、Kubernetes 用に設計されたレイヤー 3 ネットワーク構造として構成できるシンプルで使いやすい方法です。 Flannel は Linux TUN/TAP に基づいており、UDP を使用して IP パケットをカプセル化してオーバーレイ ネットワークを作成し、etcd を使用してネットワーク割り当てを維持します。
  • Canal: Canal は Flannel と Calico をサポートしており、すぐに使用できる VXLAN ネットワークを提供すると同時に、Calico ポリシー分離の使用も可能にします。
  • Cilium: Cilium は、Kubernetes、Docker、Mesos などの Linux コンテナ管理プラットフォームを使用して展開されたアプリケーション サービス間のネットワークと API 接続を透過的に提供し、保護するためのオープン ソース ソフトウェアです。 Cilium は、BPF と呼ばれる新しい Linux カーネル テクノロジに基づいており、Linux 自体に強力なセキュリティ、可視性、ネットワーク制御ロジックを動的に挿入できます。
  • kopeio-networking: kopeio-networking は Kubernetes 専用に設計されており、Kubernetes API を最大限に活用するため、よりシンプルで信頼性が高くなります。
  • kube-router: Kube-router は、Kubernetes 用に構築された専用のネットワーク ソリューションであり、操作のシンプルさとパフォーマンスを実現するように設計されています。 Kube-router は、ポッド ネットワーク ソリューション、サービス プロキシ、ネットワーク ポリシー エンフォーサーをオールインワン ソリューションとして組み合わせます。
  • Romana: Romana は、ポッド ネットワーキングに標準のレイヤー 3 ネットワーキングを使用します。 Romana は Kubernetes ネットワーク ポリシー API をサポートしており、ネットワーク アベイラビリティ ゾーン全体でクラスターをセグメント化できます。 Romana は、レイヤー 2 およびレイヤー 3 ネットワークを含むさまざまなネットワーク トポロジをサポートします。ノード間のルートはローカルにインストールされ、必要に応じて BGP または OSPF を使用してネットワーク デバイスに配布されます。
  • Weave Net: Weave Net は、さまざまなクラウド ネットワーク構成にまたがるマルチホスト コンテナ ネットワークをサポートし、Kubernetes 上で実行される従来のワークロードを簡素化します。

2) CNIプラグインプロジェクトのフォーク数の比較


Github のフォーク数の比較、出典: chrislovecnm.com

3) 10GbitネットワークにおけるCNIプラグインプロジェクトのCPU消費量の比較


10Gbit ネットワークでの CPU 消費量の比較、出典: itnext.io

スペースの制限により、この記事では CNI プラグインについて簡単にのみ紹介します。 CNI プラグインに関する詳細情報にご興味がある場合は、関連プロジェクトの公式ドキュメントを参照してください。

2. Kubernetes 監視ソリューションの概要

Kubernetes はステータスが常に変化するため、監視が困難です。一般的な監視ツールには次のようなものがあります。

  • Kubelet: Kubelet は Kubernetes API サーバーを通じて PodSpecs を監視し、リソース使用率の統計情報とポッドおよびイベントのステータスを収集します。
  • cAdvisor: cAdvisor は、コンテナ専用に構築されたオープンソースのコンテナ リソース使用状況およびパフォーマンス分析エージェントです。 Kubernetes では、cAdvisor は Kubelet バイナリに統合されています。 cAdvisor は、マシン内のすべてのコンテナを自動的に検出し、CPU、メモリ、ファイル システム、ネットワークの使用状況の統計を収集します。
  • Prometheus: Prometheus は Kubernetes をネイティブに監視できます。 Prometheus Operator は、Kubernetes 上の Prometheus セットアップを簡素化し、Prometheus アダプターを使用してカスタム メトリック API を提供できるようにします。 Prometheus は、データのクエリと視覚化のための強力なクエリ言語と組み込みダッシュボードを提供します。
  • Sysdig: Sysdig は、システム コール、Kubernetes イベント、Prometheus メトリック、statsD、JMX などのデータを 1 つのページに統合し、環境の包括的な概要を提供します。 Sysdig は、強力でカスタマイズ可能なソリューションを提供するためにクエリを実行する API も提供します。 Sysdig と Sysdig Inspect は、トラブルシューティング、パフォーマンス分析、フォレンジックを自由に実行できるようにします。
  • Jaeger: Jaeger は、複雑な分散システムにおけるトランザクションのトラブルシューティングと監視のために Uber Technologies がリリースしたトレース システムです。
  • Weave Scope: Weave Scope は、Weaveworks が開発した監視ツールです。 Weave Scope は、Kubernetes クラスター内のプロセス、コンテナ、ホストのマップを生成し、Docker コンテナのリアルタイムの可視性を実現します。グラフィカル UI に基づいてコンテナを管理し、コンテナに対して診断コマンドを実行することもできます。

現在主流の Kubernetes 監視方法は、Prometheus を介して行われ、Grafana を通じて表示されます。


Prometheus を通じて Kubernetes を監視し、Grafana を通じて表示します。画像ソース: grafana.c

上記の紹介から、Kubernetes にはネットワーク、サービスステータス、監視の面でさまざまなソリューションがあり、それぞれのソリューションに長所と短所があることがわかります。著者は最近、UCloud の TIC カンファレンスに出席し、UCloud の研究所長 Ye Lideng 氏による Kubernetes に関するプレゼンテーションを聴きました。 Ye Lideng 氏のプレゼンテーションには、RBAC に基づくアカウント管理の分離や、ステートフル サービスとステートレス サービスの管理など、多くの貴重な情報が含まれていました。著者は、UCloud 独自の Kubernetes ネットワークと監視ソリューションに特に注目し、それを皆さんと共有したいと考えています。

3. KUNとUK8Sのネットワークと監視を活用するいくつかの強力な方法

Ye Lideng 氏は、Kubernetes をベースに構築された UCloud の内部コンテナ クラウド プラットフォーム (略して KUN) と、外部ユーザー向けのコンテナ管理サービス UK8S を紹介しました。 KUN の主な実装方法の 1 つは K8S + Docker です。 Docker は、運用保守の展開効率と運用保守環境の一貫性を向上させるために使用されます。 K8S は、クロスアベイラビリティゾーンの災害復旧と自動スケーリング機能を実現するために使用され、高可用性、オンラインアップグレード、自動拡張と縮小、負荷分散、ログ表示、リソース監視などの機能を実現します。 UK8S を使用すると、ユーザーは Kubernetes クラスター自体の構築とメンテナンスを気にすることなく、コンテナ化されたアプリケーションを直接展開、管理、拡張できます。 UK8S は、UCloud プライベート ネットワークに基づくネイティブ Kubernetes API と完全に互換性があり、ULB、UDisk、EIP、VPC などのクラウド製品を統合します。

1. UK8S ネットワーク機能 - 5 つの大きな動きが続く

UK8S には、IPV6 の完全サポート、コンテナ クラウドと既存のパブリック クラウドのシームレスな統合、クラウド ホストとの一貫したパフォーマンスなど、5 つの主要なネットワーク機能があります。

  • UK8S は IPV6 を完全にサポートしており、コア インフラストラクチャ ネットワーク、アンダーレイ、Pod、およびクラスターの外部間の相互通信を変更なしで実現できます。
  • 自社開発のCNIプラグイン、VPCネットワークと深く統合
  • SecondaryIPとAPIを使用してIPを管理する
  • オーバーレイなし、パフォーマンスはクラウドホストと同じ
  • ポッドネットワークは、クラウドをホストする物理クラウドと直接通信できます。

驚くべきことに、UCloud が独自に開発した CNI (コンテナ ネットワーク インターフェイス) プラグインにより、UK8S はクラウド ホストと同じネットワーク パフォーマンス (現在最大 10 Gb/s、100 万 pps) を実現できます。

2. ワンストップKubernetesサービス(UK8S)

管理サービスに関しては、UK8S は完全なコンテナ化とマイクロサービスをサポートし、すべての管理サービスが内部 KUN プラットフォーム上で実行され、KUN API に基づいてサービス モジュールが動的に管理されることを保証します。クラスターごとに 1 つの Watcher が生成されるため、水平方向のスケーリングが容易になります。 Watcher + Redis キャッシュ方式に基づいて、ユーザーがコンソールでクラスター情報を十分速く取得できることを保証します。これは、K8S を使用して K8S を管理するのと同等です。

ホスティングの面では、「UK8S+ホスト物理マシン」モデルは既存の物理リソースを合理的に活用でき、UK8S クラスターを運用・管理したり、外部の負荷分散を展開したりする必要がありません。クラスターはビジネスのピーク時にいつでも拡張できるため、ユーザーは既存の IT リソースを効果的に活用できます。たとえば、マスター ノードは共有クラウドに展開され、ノード ノードはパブリック クラウドとマネージド クラウドの 2 つの部分に分割され、2 つの領域のネットワークは相互接続されます。

例えば、Yuannian Technology の CTO である Yang Yi 氏は、次のように述べています。「UK8S を使用すると、開発者は通常のクラウド サーバーを使用するのと同じように、K8S 環境をすばやく構築できます。開発者は K8S がもたらす利便性を享受しながら、インフラストラクチャの構築に多くのエネルギーを費やすことなく、ビジネス実装の詳細に集中できます。UCloud が提供する専門的で迅速なサービスと応答メカニズムにより、自社構築の K8S から UK8S に環境全体を正常に移行できました。」

3. KUN監視機能の紹介

UCloud KUN の監視システム ソリューションは、Prometheus に基づいて構築されています。 Prometheus は K8S クラスターにデプロイされ、HostPath を使用してデータを保存してメトリックを収集し、Alert Manager を使用してアラームを集約し、Monitor Manager によって提供される Web Hook を呼び出します。自社開発のモニターマネージャーはアラーム情報の送信を実現でき、送信チャネルには電子メールとWeChat、アラームグループ管理、相互監視検出機能、アラーム収束が含まれます。 Grafana は Web の視覚化を実現するために使用されます。

著者は、KUN 監視には企業ユーザーが特に懸念する 2 つの点があると結論付けています。

  • 自社開発のモニターマネージャー:電子メールやWeChatなどのアラーム情報の送信、アラームグループ管理、相互監視検出機能、アラーム収束を実現します。
  • 監視システムは高可用性です。冗長デプロイメントにより、各 AZ で Prometheus が実行されます。各 Prometheus は独立して実行され、同じデータを収集します。アラート マネージャーは各 AZ で実行されます。各 Alert Manager は 2 つの Prometheus からメッセージを受信します。これらは、冗長なアラームを排除するために互いにピアになっています。

監視システムの高可用性を実現するために、UCloud は冗長展開ソリューションを採用しています。モニター マネージャーは K8S クラスターの外部にデプロイされ、AZ 全体にデプロイされて相互に監視します。モニターマネージャーは、WeChat と Tingyun を通じて外部から監視されます。 Prometheus は、常にトリガーされるアラームを実装するために DeadMansSwitch ルールを構成します。 MonitorManager がそれを検出します。長時間アラームを受信しない場合は、監視アラームシステムが動作していないため、アラームが発行されます。 Grafana は PVC を使用して構成ファイルを保存します。

4. とてもクールな遊び方

UK8S はネットワーク上のパブリック クラウドと完全に統合できるため、スムーズな移行という強力な機能も備えています。 PodはVMと同様のネットワーク扱いとなるため、VMとコンテナを混在させて導入することが可能となり、K8Sへの業務移行が容易になります。

結論: UK8Sを使うことは未来をつかむことを意味する

Kubernetes はリリースされてから 5 年が経ちますが、現在でも急速に発展しており、止まる気配はありません。それどころか、常に進歩を遂げています。 Kubernetes は今掴める未来です。 Kubernetes の実装プロセスでは、ネットワークと監視が大きな課題に直面しますが、解決策は数​​多くあります。 UCloud はクラウド コンピューティングにおいて 10 年近くの技術蓄積を持っています。同社が立ち上げた UK8S ホスティング ソリューションは、あらゆるコンテナの問題を解決し、ユーザーが簡単にコンテナ時代に入ることができる鋭い剣のようなものです。 UK8S を使うということは、未来をつかむことを意味します。

<<:  分散サービスとマイクロサービスとは何かを1分で理解する

>>:  成功するクラウド移行計画を構築する方法

推薦する

Google Cloud Platform に Kubernetes クラスターをデプロイするにはどうすればよいですか?

[51CTO.com クイック翻訳] あなたとあなたの会社は Kubernetes のトレンドに追い...

中国は4年後に世界最大のクラウドコンピューティング市場になるでしょうか?

現在、中国のクラウド コンピューティング市場は、米国に次いですでに世界第 2 位の規模となっています...

MediaTemple バレンタインデー特別オファー: ドメイン名を 1 ドルで登録

前回 MT が提供したドメイン名割引を覚えていますか?ドメイン名を 4 ドルで登録します。今日はバレ...

urpad-VPS 85% オフ/新規サーバー

新しいサーバー構成: デュアル ヘキサコア 2620、128G メモリ、4×1 TB ハードディスク...

「消費者還元」制度の相次ぐ崩壊:ねずみ講の瀬戸際

最近、「消費者還元」をめぐって多くの問題が起きています。上海では、佳地豪電子商務有限公司(以下、佳地...

ウェブサイトをより効果的に宣伝するには、以下の 6 つの SEO ヒントを実行してください。

インターネット マーケティングを成功させる戦略の 1 つは、「検索エンジン最適化」(SEO) を適切...

hostingviet: ベトナム VPS - 50% オフ、年間 22 ドル、2G メモリ/1 コア/20g SSD/無制限トラフィック (150Mbps 帯域幅)

ベトナムの商人である hostingviet は、2009 年に設立され、納税番号は 0107249...

PIAYUN:国慶節特別オファー、香港\米国クラウドサーバー、CN2回線、月額20元から、時間は2倍

今年の国慶節に向けて、Piayunは香港クラウドサーバーと米国クラウドサーバーの限定版をリリースしま...

プロモーションQQグループトピックの変更によって引き起こされた考え

筆者は2年前にプロモーションQQグループを設立しました。初期の喧騒から現在の実用主義と寂しさに至るま...

クラウドコンピューティングは業界の緊急のニーズであり、中国の新しいインフラストラクチャの重要な技術です。

1. 中国のクラウドコンピューティングの先駆者クラウド コンピューティングについて語るとき、まずクラ...

いくつかの重要なポイントをマスターすれば、Baiduホームページでのキーワードランキングは神話ではない

Baidu はオンライン マーケティングの主要な戦場です。ホームページに商品キーワードを表示して競合...

2018年、3つの大きな「破産」ライブ放送

今年最もハマるものは何ですか?意外だが妥当な答えは「生放送」だ。その年、最もハマったライブ配信ルーム...

Tencent Cloud、データ損失で1100万元の訴訟を起こされる!真実が明らかになる

最近、テンセントクラウドの顧客である北京青波CNCテクノロジー株式会社が所有する「Frontier ...

Amazon Web Services と Hugging Face が連携して生成 AI を利用しやすくする

Amazon Web Services は、生成型 AI アプリケーションの作成を容易にするために、...

ウェブサイト開発の成功を左右する4つの要素の簡単な分析

大学生が自分でビジネスを始めるのはとても良いことです。しかし、成功する可能性がどれほど大きいかについ...