Azure Kubernetes Service のネットワーク全般をいい感じに理解する

1.2K Views

October 04, 25

スライド概要

2025年10月4日の『Japan Azure User Group 15周年イベント』の登壇資料です。

profile-image

都内で働いているインフラエンジニアです。Azure を含むMicrosoft 製品、インフラ、CI/CD を強みとしています。Microsoft MVP 2025~

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Azure Kubernetes Service のネットワーク全般を いい感じに理解する 2025/10/04 Japan Azure User Group 15周年イベント Kazuki Yamabe

2.

アジェンダ • 自己紹介 • 私とAzure Travelers • Kubernetes & Azure Kubernetes Service (AKS) • Kubernetes のネットワーク • AKS におけるKubernetes ネットワーク • まとめ • 参考資料 2

3.

アジェンダ • 自己紹介 • 私とAzure Travelers • Kubernetes & Azure Kubernetes Service (AKS) • Kubernetes のネットワーク • AKS におけるKubernetes ネットワーク • まとめ • 参考資料 3

4.

自己紹介 名前:Kazuki Yamabe 所属:株式会社エーピーコミュニケーションズ 受賞歴:Microsoft MVP 2025 ~ (Azure Compute Infrastructure、Azure Networking) ◼ ブログ・SNS • ブログ:https://www.kdkwakaba.com/ • X:@kdk_wakaba • Linkedin:kdk-wakaba 4

5.

私とAzure Travelers 第2回 Azure Travelers 勉強会 神戸の旅 第3回 Azure Travelers 勉強会 山形の旅 LT 枠登壇 LT 枠登壇 第4回 Azure Travelers 勉強会 福岡の旅 第6回 Azure Travelers 勉強会 愛媛の旅 飛び入りLT 登壇 LT 枠登壇 5

6.

注意事項 • 本内容は2025年10月4日現在の内容となります。今後のアップデートで仕様変更となる可能性もあ るためご了承ください • 本内容は初学者向けの内容となります。Kubernetes やAKS 上級者には少々退屈な内容となる可 能性がございますがご了承ください 6

7.

アジェンダ • 自己紹介 • 私とAzure Travelers • Kubernetes & Azure Kubernetes Service (AKS) • Kubernetes のネットワーク • AKS におけるKubernetes ネットワーク • まとめ • 参考資料 7

8.

Kubernetes & Azure Kubernetes Service (AKS) Kubernetes はコンテナ化したアプリケーションの管理・運用を自動化するオーケストレーションツール。 大量のコンテナ管理 に対する運用の負荷 を軽減 マイクロサービスアーキ テクチャに合わせたコン テナのオーケストレー ションを容易に可能 需要に応じた自動ス ケーリング、負荷分散、 自己修復による高可 用性を担保 YAML ファイルによる 宣言的な構成管理 8

9.

Kubernetes & Azure Kubernetes Service (AKS) Kubernetes はCluster、Node、Pod の単位で管理され、Control Plane とWorker Node に分かれる。 引用元:Cluster Architecture 9

10.

Kubernetes & Azure Kubernetes Service (AKS) Azure 上でコンテナアプリケーションを実行するマネージドのKubernetes サービス。 マネージドサービスに よるインフラの運用・ 管理負担を削減 需要に応じたNode Pod 数の自動スケー リングによるリソースの 最適化が可能 Entra ID、RBAC、 Azure Policy のよう な統合されたセキュリ ティ管理が可能 各種Azure サービス やサードパーティ製 OSS との統合による 構築負担の削減 10

11.

Kubernetes & Azure Kubernetes Service (AKS) • AKS はNode プールに利用しているVM サイズによる従量課金制 - AKS クラスターは停止可能なため、開発/検証用途の場合は利用しない時間帯で停止するとコストを抑えられる • SLA 有りのStandard 以上では1クラスターあたりの従量課金も発生する • 予約、Savings Plan やNode プールへのSpot インスタンス利用によるコスト削減も可能 11

12.

アジェンダ • 自己紹介 • 私とAzure Travelers • Kubernetes & Azure Kubernetes Service (AKS) • Kubernetes のネットワーク • AKS におけるKubernetes ネットワーク • まとめ • 参考資料 12

13.

Kubernetes のネットワーク – Kubernetes ネットワークの学習 Kubernetes のネットワークでは様々な用語が出てきて理解するのが難しい…。 Container Network Interface Cluster Network Overlay Network Service Network Network Policy Ingress Egress Gateway API Service Mesh 13

14.

Kubernetes のネットワーク – Pod 作成時のネットワーク設定 Kubernetes でPod が作成されるとき、以下の流れで各種設定が行われる。 1. kubectl コマンドやAPI 経由のPod 作成から、kubelet がNode 上でPod 起動を指示する 2. コンテナランタイムにネットワーク名前空間を含むPod のSandbox を作成する 3. CNI プラグインを呼び出し、Pod のネットワーク設定を実施する a. Pod 内とNode を接続するveth ペアを作成 b. Pod にIP アドレスを割り当て c. Pod をCNI ブリッジに接続 d. ルーティング、iptables の設定 4. Pod 内のコンテナを起動する 14

15.

Kubernetes のネットワーク – Container Network Interface • Container Network Interface (CNI) はKubernetes で様々なネットワークの実装を可能とする 標準API - CNI Network プラグイン: Kubernetes Pod ネットワークへのPod の追加、削除を行うプラグイン。各 Pod のNetwork Interface の作成と削除、他ネットワーク実装への接続と切断も含まれている。 - CNI IPAM プラグイン: Pod 作成時または削除時にIP アドレスの割り当て、解放を行うプラグイン。プラグイ ンによって各Node に1つ以上のIP アドレス範囲を割り当てる。パブリッククラウドの場合、仮想ネットワークで指定 されたIP アドレス範囲をPod に割り当てることも可能。 • Kubernetes はCNI の仕様に準拠しているため、ベンダーが独自のCNI プラグインを提供している - Flannel、Calico、Cilium のようなプラグインが有名 - Cisco ACI のようなSDN 製品との組み合わせも可能 15

16.

Kubernetes のネットワーク – Kubernetes における通信の種類 Kubernetes における通信の種類には主に以下のようなものがある。 • Pod 内通信 (localhost 通信) • 同じNode におけるPod 間通信 • 異なるNode におけるPod 間通信 • Service Network • Ingress (Egress)、Gateway API 今回はここを説明! 16

17.

Kubernetes のネットワーク – 同じNode におけるPod 間通信 • 同じNode 上のPod 間通信はLinux の仮想ネッ トワーク (veth ペア) を通じて通信を行う • CNI ブリッジを介してローカル上でルーティングが行 われる - 後述するNetwork Policy を使えばNode 間の通 信制御も可能 • Node 内カーネルで通信が完結するため通信速 度が速い eth0 eth0 veth0 CNI veth1 eth0 17

18.

Kubernetes のネットワーク – 異なるNode におけるPod 間通信 • 異なるNode の場合、各Node ごとにPod のIP アドレスが割り当てられる • Kubernetes ではCNI プラグインによってクラス ター間の異なるNode 間でPod が通信できる仕 組みが提供されている - Node で使用するCNI プラグインによってPod 間の通 信方式が変わる • CNI プラグインによってNetwork Policy による通 信制御も可能 CNI プラグイン 通信方式 Flannel Overlay Network (VXLAN) Calico Undarlay またはOverlay Cilium eBPF ベース eth0 eth0 veth0 eth0 CNI CNI veth0 eth0 18

19.

Kubernetes のネットワーク – Service Network • ホストの名前解決やService のIP アドレスに対す る負荷分散を行う (L3/L4 通信) - Service に対する複数Pod への負荷分散、配送先 の追加、除外も自動的に行われる • Service の公開方法によってType が分かれる Service Type 説明 ClusterIP Cluster 内部のIP でService を公 開する (デフォルト) NodePort Node の静的IP アドレスとPort で Service を公開する。 LoadBalancer 外部LoadBalancer を使って Service を公開する。 ExternalName externalName の内容をサービス にマッピングする。 19

20.

Kubernetes のネットワーク – Ingress (Egress)、Gateway API • Ingress、Gateway API はクラスター外の HTTP/HTTPS 通信の制御・ルーティングを行う Internet - Egress はPod からクラスター外への通信を制御する - Ingress Controller を使いトラフィックの負荷分散、 SSL/TLS 終端のような処理を行う - Ingress は2023年10月に開発が凍結されているた め、今後大幅な機能追加は無し • Gateway API はIngress に機能強化したもの - L7 だけでなくL4 の制御も可能 - クラウドロードバランサーのようなトラフィック処理やインフ ラストラクチャを定義する - HTTP 固有ルールに加え、gRPC 固有ルールも定義 可能 - 複雑なルーティング、マルチテナンシーに向いている 20

21.

Kubernetes のネットワーク – Network Policy • Network Policy はL3/L4 でPod 間またはPod と外部の通信を制御する仕組み - Ingress (受信)、Egress (送信) で通信方向を指 定する - Pod (ラベル名)、Namespace、IP ブロックの3つで 指定する - Network Policy が何も設定されていない場合は全 ての通信が許可された状態になる OK Label: podA • Network Policy に対応しているCNI プラグイン 利用が必要 - Calico、Cilium、Antrea など NG Label: podB - Cilium のように一部CNI プラグインではL7 通信の 制御も可能 • Network Policy の割り当てはPod 作成時の CNI プラグイン割り当てとは別プロセスで実施され る 21

22.

Kubernetes のネットワーク – Kubernetes におけるService Mesh • Service Mesh は、マイクロサービス間の通信を安 全で効率的に支援するアプリケーションインフラレイ ヤー - 各Pod にProxy を配置するサイドカーパターン - Service Mesh のコントロールプレーンで全体を管理 するパターン • Service Mesh では主に以下のような機能がある - リクエストのルーティング、リトライ、タイムアウト、ミラーリ ングのようなトラフィック管理 - 相互TLS による暗号化通信や認証・認可 - ログ、メトリクス、トレースの収集や可視化 - アクセス制限のようなポリシー管理 • Istio、Linkerd、Consul、Kuma のようなOSS が代表的 引用元:Service Mesh communication infrastructure 22

23.

アジェンダ • 自己紹介 • 私とAzure Travelers • Kubernetes & Azure Kubernetes Service (AKS) • Kubernetes のネットワーク • AKS におけるKubernetes ネットワーク • まとめ • 参考資料 23

24.

AKS におけるKubernetes ネットワーク – AKS とAzure リソース AKS クラスターを作成すると以下のようなAzure リソースが作成される (クラスター公開範囲、監視周りの 設定を追加するとリソースが増える) Azure リソース 説明 AKS クラスター Kubernetes クラスター。インフラリソースは別のリソースグループ内に作成される。 仮想マシンスケールセット (VMSS) Kubernetes のNode にあたる部分。AKS はマネージドサービスとなるため、Node のカスタマイズは行えない。 仮想ネットワーク Node の仮想マシンが所属する仮想ネットワーク。CNI プラグインによってはPod の IP アドレスとして利用したり、Private Endpoint の設定で利用される。 Standard ロードバランサー Service Network を外部に公開するためのロードバランサー。AKS クラスターを作 成すると同時に作成される。 パブリックIP アドレス Standard ロードバランサーに関連付けられるパブリックIP アドレス。Service Network でLoadBalancer を設定するとこのIP アドレスが関連付けられる。 24

25.

AKS におけるKubernetes ネットワーク – クラスターの公開範囲 • AKS ではクラスター作成時にパブリックまたはプライベートでクラスターの公開範囲を設定できる - 許可されたIP アドレス範囲はパブリッククラスターのみ設定可能 - プライベートを設定すると、Node に関連付けられた仮想ネットワークにプライベートエンドポイント (NIC 含む)、 プライベートDNS、が作成される • クラスター作成後に公開範囲の変更はできないため、変更にはクラスターの再作成が必要 Public Cluster Private Cluster 25

26.

AKS におけるKubernetes ネットワーク – AKS クラスターのCNI Azure CNI はKubernetes のCNI に準拠したAzure 用のCNI プラグイン。 • Azure CNI Overlay - Node の仮想ネットワークのサブネットから論理的に分離されたプライベートCIDR でIP アドレスを付与する - IP アドレスを抑えてPod をスケーリングしたい、Pod の通信の多くがクラスター内で行われるケースに有効 • Azure CNI Node Subnet - Node の所属する仮想ネットワークからローカルIP アドレスを付与する - Pod からクラスター外への通信が多いケース、Pod のIP アドレスを外部公開するケースには有効 • kubenet - 以前のデフォルトネットワークプラグイン現在はAzure Portal から選択できないがCLI 経由で一応作成できる - 2028年3月31日に廃止となるため、Azure CNI Overlay へのアップグレードが推奨されている 26

27.

AKS におけるKubernetes ネットワーク – AKS のIngress AKS でのIngress (Egress) 設定は主に3つの方法がある (手動でのIngress デプロイも可能) • Nginx Ingress Controller - Azure Portal またはCLI の有効化でAKS クラスターにNginx Ingress Controller をデプロイできる - Kubernetes のNginx Ingress Controller と同様の機能をAKS で利用可能 • Azure Application Gateway for Container - コンテナ用のApplication Gateway を利用することでIngress (Egress) を設定可能 - トラフィック分割、自動再試行、バックエンドへの相互認証のように高度な機能が必要な時に利用する - Ingress API やGateway API もサポートされている • Istio Ingress Gateway (後述) - Istio アドオンを利用してIngress (Egress) の設定も可能 27

28.

AKS におけるKubernetes ネットワーク – Network Policy AKS クラスターではクラスター作成時に各種OSS のNetwork Policy を事前に導入できる。 • Calico - OSS のCalico を使ったNetwork Policy が設定する - シンプルなL3/L4 制御やBGP 対応が必要な場合に利用する - 一部サポート外のNetwork Policy もあるため、既存Kubernetes から移行する場合は注意が必要 • Azure (2028年9月30日廃止予定) - Azure Network Policy Manager (NPM) を使いNetwork Policy を設定する - シンプルなネットワーク制御やWindows ノードを使いたい場合に利用する • Cilium - OSS のCilium を利用してNetwork Policy を設定する - FQDN やL7 の通信制御、Hubble を使った可観測性、セキュリティ面に優れたeBPF ベースの実装と多機能 - 高度なセキュリティ・可観測性が必要な場合に利用する 28

29.

AKS におけるKubernetes ネットワーク – AKS のService Mesh • AKS ではService Mesh のアドオンとしてIstio、Open Service Mesh を提供 - アドオンはAKS のバージョンと互換性が検証されている - Istio コントロールプレーンのスケーリング構成、coredns のようなAKS コンポーネントのスケーリングはMicrosoft 側で処理、調整する - Istio アドオンとOpen Service Mesh アドオンの併用はできない - Open Service Mesh はCNCF にて廃止が発表されているため、Istio への移行が推奨されている • Azure Portal、Azure CLI でアドオンを有効化すると必要なリソースが自動作成される - Annotation の設定もAzure Portal などから設定可能 • 手動でService Mesh を構成することも可能 - 最新のバージョンをいち早く利用したい - Istio 以外のService Mesh ツールを利用したい 29

30.

AKS におけるKubernetes ネットワーク – AKS + Istio のデモ Azure Kubernetes Service (AKS) にService Mesh のIstio をアドオンで導入し、サンプルアプリ ケーションをIstio 経由で接続できるところまでをデモでお見せします。 30

31.

アジェンダ • 自己紹介 • 私とAzure Travelers • Kubernetes & Azure Kubernetes Service (AKS) • Kubernetes のネットワーク • AKS におけるKubernetes ネットワーク • まとめ • 参考資料 31

32.

まとめ • Kubernetes のネットワーク知識を理解することで、Azure Kubernetes Service のネットワークにつ いても理解しやすくなる • Azure Kubernetes Service ではKubernetes のネットワークに関する様々な機能を簡単に導入 できるプラグイン、アドオンがあるため、Kubernetes ネットワークの構築を容易にできる • Azure のネットワークリソースと組み合わせることで、他のAzure リソースを使ったネットワーク構成も組 みやすくなる 32

34.

参考資料2 • プライベート Azure Kubernetes Service (AKS) クラスターを作成する • Azure Container Networking Interface (CNI) オーバーレイ ネットワーク • Azure Kubernetes Service (AKS) のイングレス • Azure Kubernetes Service (AKS) クラスターの送信ネットワークと FQDN 規則 • アドバンスト コンテナー ネットワーク サービスとは何ですか? • Azure Kubernetes Service 用の Istio ベースのサービス メッシュ アドオン • Azure Kubernetes Service (AKS) の Open Service Mesh (OSM) アドオン • Internal Kubernetes Communication Overview • Docker&Kubernetesネットワークのしくみ 34

35.

ご清聴ありがとうございました。 35