Cilium

AKS環境でのCilium Hubble導入ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

AKS環境でのCilium Hubble導入準備

AKS環境でCilium Hubbleを導入する際には、クラスターの状態確認とHelmチャートの設定が不可欠です。本セクションでは、事前チェック項目やHelmリポジトリ構成方法について解説します。インストール前の準備が不完全だと、後々のトラブルを防ぐことが困難になるため、以下のステップを確認してください。

AKSクラスターの事前確認

AKSクラスターの基本的な要件として、Kubernetesバージョン1.24以上CNIプラグインとしてCiliumが導入済みであることを確認します。また、Hubbleを有効にするにはCiliumのeBPF機能が動作していることも条件です。以下のコマンドでクラスターの状態をチェックできます。

注意: HubbleはCiliumの拡張機能であり、Ciliumが正常に動作していないとHubbleも起動しません。インストール前のクラスター状態確認は必須です。

Helmチャートのリポジトリ設定

Helmを使用してCiliumとHubbleを一括で導入するには、公式リポジトリからチャートを取得します。以下に手順を示します。

  1. Helmリポジトリの追加:
    bash
    helm repo add cilium https://helm.cilium.io/
    helm repo update

  2. リポジトリのリスト確認:
    bash
    helm list -r cilium

リポジトリ設定でエラーが発生した場合、helm initkubectl config viewでクラスター接続情報を再確認してください。


CiliumとHubbleのHelmチャートによるデプロイ

CiliumとHubbleはHelmチャートを用いて簡単に導入できますが、設定ファイル(values.yaml)のカスタマイズが重要です。本セクションでは、主要なパラメータの調整方法とインストール手順を解説します。

values.yamlのカスタマイズポイント

HelmチャートでCilium+Hubbleをデプロイする際は、values.yamlのカスタマイズが不可欠です。特に以下のパラメータに注意してください。

項目 値例 補足
hubble.ui.enabled true Hubble UIを有効にする
hubble.metrics.enabled ["dns", "flow"] メトリクスの収集対象を指定
operator.image.tag "v1.13.0" Ciliumオペレータのバージョン

注意: Hubble UIを有効にするには、hubble.ui.enabled: trueを必ず設定してください。

インストールコマンド実行手順

以下のようにHelmコマンドでデプロイします。

  1. チャートのインストール:
    bash
    helm install cilium cilium/cilium --namespace kube-system \
    --set hubble.ui.enabled=true \
    --set hubble.metrics.enabled=["dns","flow"]

  2. インストール確認:
    bash
    kubectl get pods -n kube-system | grep -E "cilium|hubble"

インストールに時間がかかる場合、kubectl describe pod <pod-name>でステータスを確認してください。


Hubble UIの初期設定とアクセス方法

Hubble UIは、ネットワークフローの可視化やポリシー検証に必須です。本セクションでは、Kubernetesクラスター内でのアクセス設定と外部からの接続手順を解説します。

サービスアカウントのロール作成

Hubble UIを安全に使用するには、適切なRBAC(Role-Based Access Control)設定が必要です。以下のコマンドでサービスアカウントを作成し、ロールを割り当てます。

UIへの安全な接続方法

Hubble UIにアクセスするには、LoadBalancer型のサービスIngress設定を構成します。以下はLoadBalancer型の例です。

注意: AKSではLoadBalancerサービスは仮想マシンスケールセット(VMSS)と連動しており、グローバルIPアドレスが自動割り当てられます。プロダクション環境では、TLS証明書を用いたHTTPS通信が推奨されます。


リアルタイム通信可視化の実践手法

Hubble UIは、ネットワークフローをリアルタイムで監視するための強力なツールです。本セクションでは、フローフィルタリングパケットキャプチャ機能の使い方を解説します。

フロー監視フィルタリング

Hubble UIの「Flow Monitor」画面で、以下のようにフィルタ条件を指定できます。

  • ソース・ターゲット: pod.namespace, pod.name
  • プロトコル: TCP, UDP, DNS
  • タイムフレーム: 最近1時間、24時間など

例: pod.namespace = "default" AND pod.name = "web-pod"

パケットキャプチャ機能の活用

特定のポッド間通信を詳細に分析したい場合、パケットキャプチャ(Packet Capture)機能を使用します。以下は操作手順です。

  1. Hubble UIの「Flow」画面を開く
  2. 対象フローを選択し、「Capture」ボタンをクリック
  3. キャプチャ結果をダウンロード・解析

注意: パケットキャプチャはリソースに負荷を与えるため、長時間の実行は避けてください。


CiliumNetworkPolicyの適用状況確認

CiliumNetworkPolicy(CNP)の適用状況を確認するには、CLIコマンドとHubble UIの組み合わせが効果的です。本セクションでは、ポリシーの一覧取得と違反事象のトレース方法を解説します。

ポリシー一覧の取得コマンド

以下のコマンドで現在適用されているCNPを一覧表示できます。

NAMESPACE NAME ACTION SELECTOR
default allow-http Allow app = web-app
kube-system deny-external Deny pod.namespace != "kube-system"

違反事象のトレース方法

Hubble UIでポリシー違反を確認するには、以下を行います。

  1. 「Policy」タブを開く
  2. ポリシー名を選択し、「Violations」タブをクリック
  3. 違反原因(例えば、ポートの不一致)を解析

: app: dbに対してport 5432が許可されていない場合、Hubble UIで該当フローを確認できます。


Egress通信監視の具体例

Egress通信は外部サービスへのアクセスパターンや脅威検知に重要です。本セクションでは、HubbleによるEgressルールの可視化方法と実際の運用事例を解説します。

外部サービスへのアクセスパターン

以下のように、Hubble UIでEgress通信をフィルタリングできます。

  • ドメイン: example.com
  • IPアドレス: 192.0.2.0/24(例示用)
  • プロトコル: HTTPS

注意: リアルタイムで確認する際は、flow monitor画面で「Egress」タグを指定してください。

異常な通信検出ケース

以下のパターンに該当する通信は異常と判断されます。

  1. 未許可の外部IPへのアクセス
  2. 高頻度のDNSリクエスト(スパムや攻撃の兆候)
  3. 不正なポート使用(例: 22/tcp以外でのSSH接続)

実際の事例: 某企業がHubbleでEgress通信を監視中に、未許可のIPへのアクセスを検出し、セキュリティチームに連絡したことで攻撃を阻止しました。


eBPF機能確認方法と導入前提

CiliumのeBPF機能はHubbleの動作条件であり、導入前の確認が必須です。本セクションでは、eBPF機能の確認手順や初期設定の注意点を解説します。

eBPF確認方法

以下のようなコマンドでCiliumの状態を確認し、eBPFが有効か判定できます。

ステータス 意味
Ready Ciliumが正常に起動している
eBPF Enabled eBPF機能が有効になっている
No errors エラーがない(導入前提満たし)

注意: AKSでは、CNIプラグインとしてCiliumのみを導入する必要があります。他のCNI(例: Azure CNI)と併用するとeBPFが動作しない可能性があります。

初期設定時の注意点

  • eBPF機能はLinuxカーネルバージョン4.9以上が必要です
  • AKSのWorker Nodeイメージが最新版であることを確認(例: aks-v1.24.8
  • ポリシーレイヤーのオーバーライドを防ぐため、Ciliumの優先度を高めることを推奨

まとめ

本記事では、AKS環境におけるCilium Hubbleの導入・設定手順とネットワーク監視の実践的な使い方について解説しました。

  • HelmチャートでCilium+Hubbleをインストールする方法
  • Hubble UIの初期設定と安全な接続の手順
  • リアルタイム通信可視化ポリシー検証の実践手法
  • Egress通信監視による脅威検知事例

これらの知識を活用し、Kubernetesクラスターのネットワーク状態を効率的に管理してください。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Cilium