Container Service for Kubernetes (ACK) Terway クラスターに Cilium Hubble をデプロイすると、コンテナネットワークトラフィックとネットワークポリシーを可視化でき、ネットワークアーキテクチャとサービストポロジーの可観測性が得られます。このトピックでは、Cilium Hubble を使用して、送信元や宛先などのネットワークトラフィックデータを表示し、ネットワークの可観測性を実現する方法について説明します。
前提条件
Cilium Hubble は現在、IPvlan に基づく Terway ENI multi-IP ネットワークモードのみをサポートしています。したがって、クラスターを作成する際は、ネットワークプラグイン を [Terway] に、Terway モード を [IPvlan] に設定する必要があります。そうでない場合、Cilium Hubble は使用できません。
ステップ1:eni-config ConfigMap の設定
[コンソール]
Terway の eni-config ConfigMap を編集します。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
ConfigMap ページで、名前空間 ドロップダウンリストから
kube-systemを選択します。eni-configを見つけ、アクション 列の YAML の編集 をクリックします。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 モードを有効にするかどうかを指定します。
このパラメーターが存在しないか、値が
IPvlanでない場合、クラスターは Cilium Hubble をサポートしません。cilium_enable_hubble
Hubble を使用したネットワークトラフィック分析を有効にするかどうかを指定します。
このトピックでは、このパラメーターは
"true"に設定されています。cilium_hubble_listen_address
Hubble ネットワークトラフィック情報のリスニングアドレス。
このトピックでは、このパラメーターは
":4244"に設定されています。cilium_hubble_metrics_server
Hubble メトリクスのリスニングアドレス。
このトピックでは、このパラメーターは
":9091"に設定されています。cilium_hubble_metrics
収集するメトリクス。複数のメトリクスはコンマ (,) で区切ります。
DNS や HTTP などのレイヤー 7 機能はサポートされていません。Hubble がサポートするすべてのメトリクスは、
"drop,tcp,flow,port-distribution,icmp"です。説明有効にするメトリクスが多すぎると、Hubble のパフォーマンスに影響する可能性があります。
変更を適用するために Terway Pod を再起動します。
左側のナビゲーションペインで、を選択します。
ポッド ページで、名前空間 ドロップダウンリストから kube-system を選択し、検索ボックスに terway-eniip と入力します。 一致する各ポッドについて、操作 列で を選択します。
表示される確認ダイアログボックスで、OK をクリックします。
ポッド ページで、新しい
terway-eniip-xxxPod の ステータス が [実行中] になるまで待ちます。これは、Pod が正常に再起動したことを示します。同様の手順で、すべての terway-eniip Pod を削除します。
Kubectl
eni-config ConfigMap を編集します。
次のコマンドを実行して eni-config ConfigMap を編集します:
kubectl -n kube-system edit configmap eni-config10-terway.confデータブロックに次のパラメーターを追加し、変更を保存してエディタを終了します。"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 モードを有効にするかどうかを指定します。
このパラメーターが存在しないか、値が
IPvlanでない場合、クラスターは Cilium Hubble をサポートしません。cilium_enable_hubble
Hubble を使用したネットワークトラフィック分析を有効にするかどうかを指定します。
このトピックでは、このパラメーターは
"true"に設定されています。cilium_hubble_listen_address
Hubble ネットワークトラフィック情報のリスニングアドレス。
このトピックでは、このパラメーターは
":4244"に設定されています。cilium_hubble_metrics_server
Hubble メトリクスのリスニングアドレス。
このトピックでは、このパラメーターは
":9091"に設定されています。cilium_hubble_metrics
収集するメトリクス。複数のメトリクスはコンマ (,) で区切ります。
DNS や HTTP などのレイヤー 7 機能はサポートされていません。Hubble がサポートするすべてのメトリクスは、
"drop,tcp,flow,port-distribution,icmp"です。説明有効にするメトリクスが多すぎると、Hubble のパフォーマンスに影響する可能性があります。
変更を適用するために Terway Pod を再起動します。
kubectl rollout restart daemonset -n kube-system terway-eniip
ステップ2:Cilium Hubble のインストール
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[Helm] ページで、[デプロイ] をクリックします。 [基本情報] ステップで、次の表に基づいてパラメーターを設定します。
パラメーター
値の例
[リリース名]
ack-terway-hubble
[名前空間]
kube-system
[ソース]
デフォルト値は Marketplace です。
グラフ
[ユースケース] で、すべて を選択します。
[サポートされるアーキテクチャ] で、[amd64] を選択します。
検索ボックスに ack-terway-hubble と入力します。
[ack-terway-hubble] を選択し、次へ をクリックします。
パラメーター ページで、Chart バージョン を選択します。パラメータ エリアで
ingressセクションを見つけ、hostsに Hubble UI のアクセスドメインを設定し、OK をクリックします。説明次のパラメーターは
ingressセクションにあります。パラメーター
説明
enabled
Hubble UI の Ingress アクセスを有効にするかどうかを指定します。
annotations
カスタム Ingress アノテーション。
path
カスタム Ingress ルートパス。
hosts
カスタム Ingress ホスト。
tls
カスタム Ingress TLS 設定。
ステップ3:Cilium Hubble の使用
Cilium Hubble の Ingress の hosts パラメーターを設定した場合、ポート 80 でそのドメインにアクセスすることで Hubble UI にアクセスできます。Hubble UI には次の情報が表示されます。
ingress.localのように一般に解決できないドメイン名を使用する場合は、kubectl -n kube-system get svc nginx-ingress-lb コマンドを実行して Hubble UI の IP アドレスを取得します。次に、ローカルの hosts ファイルにエントリを追加して、ingress.localをこの IP アドレスにマッピングします。
サービスマップには、クラスターの名前空間全体にわたる Pod と Service 間の通信トポロジーが表示されます。
フロービューには、送信元、宛先、ポート情報、転送ステータスなど、現在のネットワークトラフィックに関する詳細が表示されます。
ネットワークポリシーが設定されている場合、UI にはどのトラフィックフローがそれらのポリシーによってドロップされたかが表示されます。
Cilium Hubble は、kube-system名前空間のhubble-metricsサービスを介してネットワークトラフィックメトリクスを公開します。eni-configConfigMap の cilium_hubble_metrics フィールドで、公開するメトリクスを制御します。このデータは、オープンソース Prometheus または Managed Service for Prometheus を使用して収集できます。詳細については、「オープンソース Prometheus を使用したモニタリング」および「Managed Service for Prometheus の設定」をご参照ください。
Cilium Hubble によって公開されるメトリクスの詳細については、「Hubble Exported Metrics」をご参照ください。
カテゴリ | メトリクス | ラベル | 説明 |
drop | hubble_drop_total | reason, protocol | ドロップされたパケットの合計。 |
tcp | hubble_tcp_flags_total | flag, family | 観測された TCP フラグの合計。 |
flow | hubble_flows_processed_total | type, subtype, verdict | 処理されたネットワークフローの合計。 |
port-distribution | hubble_port_distribution_total | protocol, port | 宛先ポートごとのパケット分布。 |
icmp | hubble_icmp_total | family, type | ICMP パケットの合計。 |