Software Design plus Docker & Kubernetesネットワークのしくみ ―⁠―クラウドネイティブに求められる情報通信の知識

「Docker & Kubernetesネットワークのしくみ」のカバー画像
著者
大隈峻太郎おおくましゅんたろう 著
定価
3,300円(本体3,000円+税10%)
発売日
2025.6.5
判型
B5変形
頁数
296ページ
ISBN
978-4-297-14899-7 978-4-297-14900-0

概要

ある程度大きな規模のWebシステム開発では,DockerやKubernetesなどのコンテナ仮想化技術を使ってクラウド上にシステムを構築することが主流です。クラウドサービスの普及により,現在のシステム開発では網羅的な低レイヤーのネットワーク知識は必ずしも必要とされません。しかし,複数のコンテナを連携させて想定どおりに動かしたいときや,コンテナとの通信で問題が発生して原因を調査するときには,ある程度のネットワークの知識が欠かせません。

本書は,DockerやKubernetesを利用する際に必要なネットワークの知識を解説します。コンテナネットワーク構築の実践を通じて,コンテナやホストがどのように連携して動いているのかを学べます。また,より柔軟で拡張性のあるネットワーク環境を構築するためのCNI(Container Network Interface)やサービスメッシュといった技術についても扱います。本書を活用することで,広く奥深いネットワーク技術の中から,効率的にクラウドネイティブの時代に必要とされるネットワーク技術を学べるでしょう。

こんな方にオススメ

  • Docker,Kubernetesを使ってアプリ開発を行っている方
  • Docker,Kubernetesを使ってクラスタシステムやマイクロサービスを構築/運用している方
  • クラウドネイティブを支えるネットワーク技術を学びたい方

目次

第1章 イントロダクション

  • 1-1 本書の目的と概要
  • 1-2 対象読者
  • 1-3 本書の読み方
    • 1-3-1 本書の構成
  • 1-4 使用する環境とソフトウェア
    • 1-4-1 AWS環境における準備
    • 1-4-2 PC環境における準備
  • 1-5 注意点
  • 1-6 本書のリポジトリとサポートページ
  • 1-7 まとめ

第2章 Dockerネットワークの要素技術

  • 2-1 Dockerネットワークの全体像と技術
    • 2-1-1 Dockerの基本操作
    • 2-1-2 Dockerの基本的なネットワーク構成と要素技術
    • 2-1-3 まとめ
  • 2-2 インターネットの通信の全体像
    • 2-2-1 ネットワークの階層構造
    • 2-2-2 プロトコルと通信の流れ
    • 2-2-3 IPアドレスとMACアドレスのしくみ
    • 2-2-4 ブリッジ,スイッチ,ルータとルーティング
    • 2-2-5 Dockerコンテナの通信
    • 2-2-6 通信フローのまとめ
  • 2-3 VXLAN
    • 2-3-1 VLANとは
    • 2-3-2 VXLANとは
    • 2-3-3 VXLANの特徴
    • 2-3-4 VXLAN環境の構築
    • 2-3-5 DockerとVXLAN
    • 2-3-6 まとめ
  • 2-4 Network Namespace
    • 2-4-1 Network Namespaceとは
    • 2-4-2 vethを使ったnetnsの通信
    • 2-4-3 netnsを使った独自ネットワークの構築
    • 2-4-4 まとめ
  • 2-5 iptables
    • 2-5-1 iptablesとコンテナ
    • 2-5-2 iptablesの基本的な要素
    • 2-5-3 チェインの流れ
    • 2-5-4 Dockerにおけるiptablesの設定
    • 2-5-5 まとめ

第3章 Dockerネットワークのしくみ

  • 3-1 Dockerのネットワーク構成
    • 3-1-1 Dockerインストール時のネットワーク構成
    • 3-1-2 コンテナ起動時のネットワーク構成
    • 3-1-3 まとめ
  • 3-2 Dockerネットワークドライバ
    • 3-2-1 ネットワークドライバの種類
  • 3-3 ログからわかるコンテナ間の通信
    • 3-3-1 事前準備
    • 3-3-2 通信経路のトレース
    • 3-3-3 まとめ
  • 3-4 ログからわかるコンテナ外部との通信
    • 3-4-1 事前準備
    • 3-4-2 通信経路のトレース
    • 3-4-3 まとめ
  • 3-5 マルチホストネットワークの構築
    • 3-5-1 独自ネットワークの構築
    • 3-5-2 マルチホストを実現するネットワークプラグイン
    • 3-5-3 オーバレイネットワークのしくみ
    • 3-5-4 オーバレイネットワークの構築
    • 3-5-5 まとめ
  • 3-6 チャットアプリ開発を通じた実践的なネットワーク構築
    • 3-6-1 全体像
    • 3-6-2 コードの用意
    • 3-6-3 Dockerfileの作成
    • 3-6-4 コンテナのビルド
    • 3-6-5 各コンテナの起動
    • 3-6-6 チャット実施
    • 3-6-7 まとめ

第4章 Kubernetesネットワークのしくみ

  • 4-1 Kubernetesネットワークの全体像
    • 4-1-1 Kubernetesとネットワーク
    • 4-1-2 Kubernetesの特徴
    • 4-1-3 Kubernetesのコンポーネント
    • 4-1-4 Kubernetesのネットワーク
    • 4-1-5 まとめ
  • 4-2 Kubernetesの環境構築
    • 4-2-1 minikubeを用意
    • 4-2-2 アプリを用意
    • 4-2-3 Docker環境を切り替え
    • 4-2-4 コンテナイメージをビルド
  • 4-3 Podの通信のしくみ
    • 4-3-1 Pod内の通信
    • 4-3-2 Pod間の通信
    • 4-3-3 ノードとPodの通信
    • 4-3-4 まとめ
  • 4-4 Serviceのしくみ
    • 4-4-1 事前準備
    • 4-4-2 Serviceとは
    • 4-4-3 ClusterIP
    • 4-4-4 NodePort
    • 4-4-5 LoadBalancer
    • 4-4-6 ルーティングと負荷分散
    • 4-4-7 名前解決
    • 4-4-8 まとめ
  • 4-5 Ingressのしくみ
    • 4-5-1 Ingressとは
    • 4-5-2 環境構築
    • 4-5-3 Ingressの設定方法
    • 4-5-4 Ingress Controllerと裏側のしくみ
    • 4-5-5 まとめ
  • 4-6 リソースを適用するときの各コンポーネントの動き方
    • 4-6-1 Kubernetesのコンポーネント
    • 4-6-2 事前準備
    • 4-6-3 Deploymentが生成されるまでの流れ
    • 4-6-4 Serviceが生成されるまでの流れ
    • 4-6-5 まとめ

第5章 CNI(Container Network Interface)

  • 5-1 CNIのしくみ
    • 5-1-1 Kubernetesにおけるネットワークの要件
    • 5-1-2 CNIとは
    • 5-1-3 設定ファイル
    • 5-1-4 環境変数
    • 5-1-5 まとめ
  • 5-2 CNIプラグインの裏側のしくみ
    • 5-2-1 CNIプラグインを支えるバックエンド技術
    • 5-2-2 代表的なCNIプラグイン
    • 5-2-3 Calicoを使ったネットワーク環境の構築
    • 5-2-4 まとめ
  • 5-3 Network Policy
    • 5-3-1 Network Policyとは
    • 5-3-2 podSelector
    • 5-3-3 namespaceSelector
    • 5-3-4 Selectorの組み合わせ
    • 5-3-5 Network Policyのしくみ
    • 5-3-6 まとめ

第6章 サービスメッシュを支える技術

  • 6-1 サービスメッシュとIstio
    • 6-1-1 サービスメッシュとは
    • 6-1-2 Istioとは
    • 6-1-3 Istioのアーキテクチャ
    • 6-1-4 サイドカーとサイドカーフリー
    • 6-1-5 まとめ
  • 6-2 Istioの使い方としくみ
    • 6-2-1 環境構築
    • 6-2-2 サンプルアプリの起動
    • 6-2-3 クラスタ外部からのアクセス許可
    • 6-2-4 タイムアウト
    • 6-2-5 認証
    • 6-2-6 Kialiによるアーキテクチャの可視化
    • 6-2-7 まとめ

プロフィール

大隈峻太郎おおくましゅんたろう

株式会社Soitto代表取締役。Webシステムの設計/実装を専門としている。株式会社野村総合研究所や株式会社グリッドなどで10年以上にわたりシステム開発を経験。グリッドにて社内のGPUサーバをDockerで仮想化し,機械学習の分析環境を構築したことで,DockerとKubernetesの沼にハマり始める。現在は独立し,さまざまなプロジェクトに参加しながら,AWSやGoogle Cloudを用いたインフラ構築や,アプリケーションの設計/実装に従事している。好きな業界はエネルギーと宇宙。