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分で理解する

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

推薦する

pnzhost: 買収後初のプロモーション、最低 $7.2/年、KVM 仮想 VPS、512M メモリ/1T トラフィック

pnzhostさん、元の古いユーザーは数日前にブランドが丸ごと他の人に売却されたというメッセージを受...

ブロックチェーンが分散資産市場に参入

[[266858]]デジタル2.0時代では、「モノのインターネット+ブロックチェーン」の組み合わせが...

エッジクラウドとは何かを説明します。

一見すると、クラウド コンピューティングとエッジ コンピューティングは互換性がないように見えるかもし...

B2CウェブサイトSEOソリューション

この記事は、前回の記事「B2C ウェブサイトの検索エンジン最適化分析および診断プログラム」の続きです...

簡単な説明: SEO最適化の専門家になるために必要な基本的な資質

SEO キーワード最適化に不慣れなすべての初心者は、このような目標を持ち、優れた SEO 最適化者、...

Kubernetes LBソリューション: クラウドベンダーのダイナミックDNSと負荷分散は不要

[[339892]]この記事はWeChat公式アカウント「Xintai Cloud Service」...

ブランドのパーソナライゼーションがトレンドに、NetEase Chunfengは新しいマーケティングを簡単に活用

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています「洛吉思維...

A5プラットフォームウェブマスターの成功の出発点である、最初のA5提出体験について語る

私は 3 年前に A5 プラットフォーム、A5 ダウンロード、A5 フォーラム、A5 トランザクショ...

midphase - 高品質のウェブホスティング、15% オフ、年間 12 ドル + 無料ドメイン名

20年近い歴史を持つUK2グループの子会社Midphaseでは、最近バーチャルホスト向けに定価より1...

CNドメイン名が個人登録を再開、市場の可能性はまだあるが、まだ長い道のり

Admin5 Webmaster Networkは6月6日、CNNICが5月28日に新しいドメイン名...

中国でドメイン名登録サービスプロバイダーが訴えられた最初の事例

9月26日、インターネット上で名誉毀損により国民の名誉が傷つけられた場合、侵害発言の発信者に賠償を求...

Baidu によってウェブサイトが降格された後にすべきこと

多くのウェブマスターは、Baidu によってウェブサイトが降格された後、自分のウェブサイトに自信を失...

クラウド効率の3つの側面:コスト、パフォーマンス、速度

この記事では、クラウド効率とその 3 つの要素 (コスト、パフォーマンス、速度) をより明確に定義し...

エッジコンピューティングにおける高精度液体冷却の役割

インターネットが広く普及した初期の頃から今日のハイパーコネクテッド時代に至るまで、私たちが生成するデ...

Baidu 8.3 小規模アップデートによりウェブサイトのデータが再び急増

Baidu は毎週木曜日か金曜日に小さなアップデートを行います。Baidu の小さなアップデートによ...