Chuyển đến nội dung chính

レッスン 8: CILIUM CNI のインストール — eBPF ネットワーキング

kube-proxy の代わりに eBPF を使用して Cilium CNI をインストールし、ハッブル観測を有効にし、NetworkPolicy L3/L4/L7 を構成して、ポッド間のネットワークが適切に動作することを確認します。

🔒 DevSecOps — レッスン 8 レッスン 8: CILIUM CNI セットアップ — eBPF ネットワーク

Kubernetes HA を使用してマイクロサービスをオンプレミスにデプロイ

パート 2: kubeadm を使用した Kubernetes HA クラスター__HTMLTAG_62___

xdev.asia

🎯 レッスンの目的__HTMLTAG_68___

このレッスンを完了すると、次のことができるようになります:

  • ✅ eBPF と、Cilium が従来の CNI よりも優れている理由を理解します
  • ✅ Helm を使用して Cilium をインストールし、接続を確認します
  • ✅ kube-proxy を Cilium eBPF
  • に置き換えます
  • ✅ ネットワーク可観測性のためにハッブルを有効にする
  • ✅ ネットワーク ポリシー L3/L4/L7 の作成

パート 1: CILIUM を選ぶ理由

1.1.人気の CNI を比較

基準__HTMLTAG_93___ Calico フランネル Cilium
データプレーン iptables/eBPF VXLAN eBPF ネイティブ
ネットワークポリシー L3/L4 ❌ サポートされていません L3/L4/L7
パフォーマンス 良い 平均 素晴らしい
可観測性 基本 ❌ ハッブル (深層)
kube プロキシの置き換え _❌ ❌ ✅ 全文_
暗号化 (WireGuard) ✅ _❌ ✅ ネイティブ
_サービス メッシュの統合 ❌_ _❌ ✅ Istio/Envoy

1.2. eBPF とは何ですか?

___コードブロック_0___

パート 2: CILIUM セットアップ

2.1. Helm をインストール

___コードブロック_1___

2.2. kube-proxy を削除します (オプション - Cilium に置き換えます)

___コードブロック_2___

2.3. Helm

を使用して Cilium をインストールする ___コードブロック_3___

2.4.重要なパラメータの説明

の置き換え
パラメータ 値 意味__HTMLTAG_198___
kubeProxyReplacement 本当 Cilium は kube-proxy を完全に置き換えます__HTMLTAG_208___
k8sサービスホスト 10.10.20.100 VIP (HAProxy) を Cilium に接続して API サーバー
ipam.mode kubernetes_ K8s IPAM を使用する (オンプレミスに適しています)
hubble.relay.enabled true フロー集約のためにハッブルリレーを有効にする
hubble.ui.有効 本当 Hubble UI (Web ダッシュボード) を有効にする
オペレーター.レプリカ__HTMLTAG_244___ 2 Cilium オペレーター用 HA
bpf.マスカレード 本当 eBPF マスカレードによる iptables SNAT
loadBalancer.アルゴリズム リニアモーターカー スケーリング時の中断を軽減する一貫したハッシュ
帯域幅マネージャー 有効 + bbr EDT ベースのレート制限 + BBR 輻輳制御

2.5。 Cilium のインストールを確認

___コードブロック_4___

パート 3: CILIUM CLI — 接続テスト

3.1. Cilium CLI

をインストールする ___コードブロック_5___

3.2.繊毛ステータス

___コードブロック_6___

3.3.接続テスト

___コードブロック_7___

パート 4: ハッブル観測能力

4.1. Hubble CLI

をインストールする ___コードブロック_8___

4.2.ネットワーク フローの表示

___コードブロック_9___

4.3.ハッブル UI

___コードブロック_10___

パート 5: CILIUM によるネットワーク ポリシー

5.1.テスト アプリケーションをデプロイ

___コードブロック_11___

5.2.デフォルトのすべて拒否ポリシー

___コードブロック_12___

コードブロック_13

5.3.フロントエンド→バックエンドを許可

___コードブロック_14___

コードブロック_15

5.4. Cilium L7 ポリシー (HTTP 対応)

___コードブロック_16___

コードブロック_17


パート 6: トラブルシューティング

6.1.よくある問題

___コードブロック_18___

6.2.テスト リソースのクリーンアップ

___コードブロック_19___

💡 重要なポイント

  1. Cilium eBPF 優れた: O(1) ルックアップ、kube-proxy を置き換える、L7 ポリシー
  2. kubeProxyReplacement=true: Cilium がすべてのサービスを処理するため、kube-proxy は必要ありません
  3. Hubble による深い可観測性 — フロー、DNS クエリ、HTTP リクエストを参照
  4. _ネットワークポリシー: デフォルトの拒否 + ホワイトリストがベスト プラクティス
  5. CiliumNetworkPolicy K8s NetworkPolicy を拡張し、L7 ルール (HTTP、gRPC、Kafka) を追加
  6. _cilium 接続テスト__HTMLTAG_341___: 46 個のテストを実行してネットワークを自動的に検証

🎯 演習

演習 1: Cilium のインストール

  • Helm をインストールし、kubeProxyReplacement を使用して Cilium をインストール
  • すべてのノードの準備が完了していることを確認
  • 繊毛ステータスと繊毛接続テストを実行

演習 2: ネットワーク ポリシー ラボ

  • 名前空間を作成し、3 つのポッド (フロントエンド、バックエンド、データベース) をデプロイ
  • デフォルトのすべてを拒否する
  • ポリシーの作成: フロントエンド→バックエンド (HTTP GET)、バックエンド→データベース (TCP 5432)
  • _承認されたトラフィックのみが機能することを確認

📚 次の投稿

__HTMLTAG_373___レッスン 9: MetalLB — オンプレミス用ロードバランサーでは、MetalLB をインストールして、タイプ LoadBalancer でクラスターの外部にサービスを公開します。