すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ACK TerwayとCilium Hubbleを使用してネットワーク可観測性を実装する

最終更新日:Jan 26, 2025

Terwayネットワークプラグインを使用してコンテナのネットワークトラフィックとネットワークポリシーを表示するContainer Service for Kubernetes (ACK) クラスターにCilium Hubbleをデプロイできます。 これにより、ネットワークアーキテクチャとビジネストポロジを監視できます。 このトピックでは、Cilium Hubbleを使用して、パケットの送信元や宛先など、コンテナネットワーク内のネットワークトラフィックに関する統計を表示する方法について説明します。

前提条件

ACK管理クラスターが作成されます。

説明

Cilium HubbleはTerwayの複数のポッドモードのための1つのENIだけ支えます。 このモードはIPVLANに基づいています。 したがって、ACKクラスターを作成するときは、[Network Plug-in] パラメーターに [Terway] を、[Terway Mode] パラメーターに [IPv6] を選択する必要があります。 それ以外の場合は、CiliumHubbleを使用できません。

ステップ1: Terway ConfigMap eni-configの変更

ACKコンソールの使用

  1. Terway ConfigMap eni-configを変更します。

    1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[設定] > [設定] を選択します。

    3. の上部に設定マップページからkube-systemを選択します。名前空間ドロップダウンリストで、eni-config ConfigMapを見つけ、YAMLの編集で、アクション列を作成します。

    4. では、YAMLで表示パネル, 検索10-terway.confに次のパラメーターを追加します。10-terway.confをクリックし、OK.

      "cilium_enable_hubble":"true",
      "cilium_hubble_listen_address":":4244",
      "cilium_hubble_metrics_server":":9091",
      "cilium_hubble_metrics":"drop,tcp,flow,port-distribution,icmp",

      パラメーター

      説明

      補足

      eniip_virtual_type

      IPVLANモードを有効にするかどうかを指定します。

      ConfigMapにこのパラメーターが含まれていない場合、または値がIPVLANに設定されていない場合、クラスターはCilium Hubbleをサポートしていません。

      cilium_enable_hubble

      Cilium Hubbleがネットワークトラフィックを分析できるようにするかどうかを指定します。

      この例では、このパラメーターは "true" に設定されています。

      cilium_hubble_listen_address

      Cilium Hubble Serviceを公開するために使用されるポート。

      この例では、このパラメーターは ":4244" に設定されています。

      cilium_hubble_metrics_server

      Cilium Hubbleメトリクスサーバーを公開するために使用されるポート。

      この例では、このパラメーターは ":9091" に設定されています。

      cilium_hubble_metrics

      Cilium Hubbleを使用して収集するメトリック。 複数のメトリックはコンマ (,) で区切ります。

      HTTPやDNSなどのレイヤー7ネットワーク機能はサポートされていません。 Cilium Hubbleは、「drop、tcp、flow、port-distribution、icmp」のメトリックを収集できます。

      説明

      過剰な数のメトリックを指定すると、Cilium Hubbleのパフォーマンスが影響を受ける可能性があります。

  2. 変更されたConfigMapのTerwayポッドを再起動して有効にします。

    1. 詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [ポッド] を選択します。

    2. の上部にポッドページからkube-systemを選択します。名前空間ドロップダウンリストで、検索ボックスにterway-eniipと入力し、もっと > 削除で、アクション名前がterway-eniip-xxxである各ポッドの列。

    3. 表示されるメッセージで、[OK] をクリックします。

      [ポッド] ページで、terway-eniip-xxxの [ステータス] 列に [実行中] が表示されると、ポッドが再起動されます。

    4. 上記の手順を繰り返して、すべてのTerwayポッドを削除します。

kubectlを使う

  1. Terway ConfigMap eni-configを変更します。

    1. 次のコマンドを実行して、Terway ConfigMap eni-configを変更します。

      kubectl -n kube-system edit configmap eni-config
    2. 次のコンテンツをTerway ConfigMapの10-terway.confに追加し、ConfigMapを保存します。

      "cilium_enable_hubble":"true",
      "cilium_hubble_listen_address":":4244",
      "cilium_hubble_metrics_server":":9091",
      "cilium_hubble_metrics":"drop,tcp,flow,port-distribution,icmp",

      パラメーター

      説明

      補足

      eniip_virtual_type

      IPVLANモードを有効にするかどうかを指定します。

      ConfigMapにこのパラメーターが含まれていない場合、または値がIPVLANに設定されていない場合、クラスターはCilium Hubbleをサポートしていません。

      cilium_enable_hubble

      Cilium Hubbleがネットワークトラフィックを分析できるようにするかどうかを指定します。

      この例では、このパラメーターは "true" に設定されています。

      cilium_hubble_listen_address

      Cilium Hubble Serviceを公開するために使用されるポート。

      この例では、このパラメーターは ":4244" に設定されています。

      cilium_hubble_metrics_server

      Cilium Hubbleメトリクスサーバーを公開するために使用されるポート。

      この例では、このパラメーターは ":9091" に設定されています。

      cilium_hubble_metrics

      Cilium Hubbleを使用して収集するメトリック。 複数のメトリックはコンマ (,) で区切ります。

      HTTPやDNSなどのレイヤー7ネットワーク機能はサポートされていません。 Cilium Hubbleは、「drop、tcp、flow、port-distribution、icmp」のメトリックを収集できます。

      説明

      過剰な数のメトリックを指定すると、Cilium Hubbleのパフォーマンスが影響を受ける可能性があります

  2. 変更されたConfigMapのTerwayポッドを再起動して有効にします。

    kubectl rollout restart daemonset -n kube-system terway-eniip

ステップ2: Cilium Hubbleのインストール

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 クラスターの詳細ページの左側のウィンドウで、[アプリケーション] > [ヘルム] を選択します。

  3. [Helm] ページで、[デプロイ] をクリックします。 [基本情報] ステップで、次の表に基づいてパラメーターを設定します。

    パラメーター

    アプリケーション名

    ack-terway-hubble

    名前空間

    kube-system

    ソース

    デフォルト値: Marketplace

    チャート

    • シナリオを使用する: [すべて] を選択します。

    • サポートされているアーキテクチャ: amd64を選択します。

    • 検索ボックスにack-terway-hubbleと入力します。

    [ack-terway-hubble] カードを選択し、[Next] をクリックします。

  4. [パラメーター] ステップで、[チャートバージョン] パラメーターを設定します。 [パラメーター] セクションで、ingresshostsパラメーターを指定します。ホストは、ハッブルUIにログインするために使用されます。 ビジネス要件に基づいて他のパラメーターを設定します。 [OK] をクリックします。

    説明

    次の表のingressで説明するパラメーターを指定する必要があります。

    パラメーター

    説明

    enabled

    Ingressを使用してハッブルUIにアクセスするかどうかを指定します。

    annotations

    Ingressの注釈。

    パス

    Ingressのルートパス。

    hosts

    Ingressのホスト。

    tls

    Ingressのトランスポート層セキュリティ (TLS) 設定。

ステップ3: Cilium Hubbleを使用する

Cilium HubbleのIngressにhostsパラメーターを指定した場合、ポート80を使用してIngressホストにアクセスすることで、Hubble UIにログインできます。 Ingressホストにアクセスすると、次の情報が表示されます。

説明

アクセスするドメイン名がingress.localなどの権限のあるドメイン名でない場合は、kubectl -n kube-system get svc nginx-ingress-lbコマンドを実行して、Hubble UIのIPアドレスを照会する必要があります。 次に、コンピュータ上のhostsファイルを変更して、ingress.localをHubble UIのIPアドレスにマッピングします。

  • ページの上部では、異なる名前空間に属するポッドとサービスのトポロジを表示できます。

  • ページの下部では、ネットワークトラフィックの送信元、送信先、ポート、転送状態を表示できます。

  • ネットワークポリシーを設定した場合は、ネットワークポリシーの不一致によりドロップされたパケットを表示できます。

可观测

Cilium Hubbleは、kube-system名前空間のhubble-metrics Serviceを使用して、ネットワークフローメトリックを公開します。 Terway ConfigMap eni-configでcilium_hubble_metricsパラメーターを指定することで、Cilium Hubbleが公開するメトリックを指定できます。これらのメトリックを収集するには、オープンソースのPrometheusとManaged Service for Prometheusを使用できます。 詳細については、「オープンソースのPrometheusを使用したACKクラスターのモニタリング」および「Prometheusのマネージドサービス」をご参照ください。

説明

Cilium Hubbleが公開できるメトリックの詳細については、「エクスポートされたメトリック」をご参照ください。

カテゴリ

メトリクス

ラベル

説明

drop

hubble_drop_total

理由、プロトコル

ドロップされたパケットの数。

tcp

hubble_tcp_flags_total

旗、家族

TCPフラグの数。

流れ

hubble_flows_processed_total

タイプ、サブタイプ、評決

処理されたネットワークフローの数。

ポート配布

hubble_port_distribution_total

プロトコル、ポート

宛先ポートでのパケットの配布。

icmp

hubble_icmp_total

家族、タイプ

インターネット制御メッセージプロトコル (ICMP) メッセージの数。