インフラ・バックエンドの学習や検証をまとめたリポジトリです。
このリポジトリでは、Kubernetes を中心としたコンテナオーケストレーションの基礎から実践的なトピックまでを、ハンズオン形式で学習できます。各チュートリアルは独立しており、順番に進めることで体系的に理解を深められます。
| ツール | 用途 |
|---|---|
| Docker Desktop | コンテナランタイム + Kubernetes クラスター |
| kubectl | Kubernetes CLI |
-
Docker Desktop をインストール
- 公式サイトからダウンロード
-
Kubernetes を有効化
- Docker Desktop の Settings > Kubernetes > Enable Kubernetes にチェック
-
クラスターの動作確認
kubectl cluster-info
-
kubectl エイリアス設定(推奨)
# ~/.zshrc に追加 alias k='kubectl' source <(kubectl completion zsh) compdef k=kubectl
| # | タイトル | 学習内容 |
|---|---|---|
| 02 | はじめてのPodをnginxで動かす | Pod の起動・確認・削除、Namespace の基本操作 |
| 03 | manifestファイルでPodを定義する | YAML による宣言的なリソース管理 |
| 04 | ReplicaSetでPodを管理する | Pod のレプリケーションと自己修復 |
| 05 | ServiceでPodにアクセスする | ClusterIP、NodePort、LoadBalancer |
| 06 | Ingressで複数Serviceにパスベースルーティング | L7 ロードバランシングとルーティング |
| 07 | Deploymentでアプリケーションを更新する | ローリングアップデートとロールバック |
| 08 | HPAでPodを自動スケーリングする | 負荷に応じた水平スケーリング |
| # | タイトル | 学習内容 |
|---|---|---|
| 09 | ConfigMapで設定を管理する | 環境変数・設定ファイルの外部化 |
| 10 | Secretで機密情報を管理する | パスワード・APIキーの安全な管理 |
| # | タイトル | 学習内容 |
|---|---|---|
| 11 | Helmでパッケージ管理する | Chart を使ったアプリケーションのデプロイ |
| 12 | Kustomizeで環境別マニフェストを管理する | Base と Overlay による環境差分管理 |
| 12+ | Kustomizeでリモートbaseを使う | Git リポジトリからの base 参照 |
| 13 | RBACでアクセス制御する | Role、RoleBinding によるアクセス権限管理 |
| 14 | Argo CD 入門 | GitOps の概念、Argo CD のアーキテクチャと主要概念、ハンズオン |
| 14+ | Argo CD と Kustomize リモートベースの連携 | GitOps によるデプロイ自動化 |
| # | タイトル | 学習内容 |
|---|---|---|
| 15 | Istio でサービスメッシュを構築する | サイドカー注入、オブザーバビリティ、トラフィック管理、サーキットブレーカー、Gateway |
| # | タイトル | 学習内容 |
|---|---|---|
| 01 | VPCをTerraformで構築してWebサーバーを公開する | VPC、サブネット、IGW、ルートテーブル、セキュリティグループ、パブリック/プライベートサブネットの違い |
| 02 | ALBで複数のEC2にリクエストを負荷分散する | ALB、リスナー、ターゲットグループ、ヘルスチェック、セキュリティグループの分離 |
| ツール | 用途 |
|---|---|
| Terraform | IaC |
| AWS CLI | リソースの確認 |
| # | タイトル | 学習内容 |
|---|---|---|
| 01 | VNetをTerraformで構築してWebサーバーを公開する | VNet、サブネット、NSG、Public IP、NIC、Linux VM、cloud-init |
| ツール | 用途 |
|---|---|
| Terraform | IaC |
| Azure CLI | リソースの確認 |
GCP の主要サービスを、それぞれ独立した最小の Terraform root として単体で構築して学ぶサンプル集。
各サンプルは自己完結していて、好きなものから単体で apply できる。
| タイトル | 学習内容 |
|---|---|
| VPC / Subnet / Firewall | カスタムモード VPC、サブネット、ファイアウォール |
| BigQuery | サーバレス DWH、データセット/テーブル/スキーマ |
| Firestore | NoSQL ドキュメント DB |
| Cloud SQL | Private Service Access、秘密を tfstate に残さない設計 |
| Cloud Run Job | バッチ実行、Artifact Registry、Service Account |
| Cloud Run Service / IAP | 常駐サービス、IAP 認証 |
| Workflows | YAML オーケストレーション(単体) |
| Pub/Sub | topic / subscription |
| Eventarc | イベント → 自動起動(単体) |
| Workload Identity Federation | GitHub Actions の鍵レス認証 |
個人の権限(ADC)で terraform apply している状態から、terraform 実行用 SA を impersonate して apply する状態へ移行する流れを最小構成で体感するラボ。
| ディレクトリ | 学習内容 |
|---|---|
| 01-bootstrap-sa | 個人 ADC で実行用 SA + tokenCreator を用意(ブートストラップ) |
| 02-impersonated-apply | 環境変数だけで impersonate に切替、whoami で確認 |
| ツール | 用途 |
|---|---|
| Terraform | IaC |
| Google Cloud CLI | 認証・リソースの確認 |
- 各チュートリアルのディレクトリに移動
- README.md の手順に従って実践
- クリーンアップを実施して次のチュートリアルへ
# 例: Pod チュートリアルを始める
cd kubernetes/02-pod
cat README.mdmaitake/
├── aws-network/ # AWS ネットワーク ハンズオン
│ ├── 01-vpc-basics/ # VPC 基礎
│ └── 02-alb/ # ALB 負荷分散
├── azure-network/ # Azure ネットワーク ハンズオン
├── gcp-terraform-handson/ # GCP 各サービスの単体 Terraform サンプル集
├── gcp-sa-impersonation/ # SA インパーソネートで terraform apply するラボ
│ ├── 01-bootstrap-sa/ # 実行用 SA + tokenCreator を用意
│ └── 02-impersonated-apply/ # 環境変数で impersonate 切替
└── kubernetes/ # Kubernetes ハンズオン
├── 02-pod/ # Pod 基礎
├── 03-manifest/ # マニフェストファイル
├── 04-replicaset/ # ReplicaSet
├── 05-service/ # Service
├── 06-ingress/ # Ingress
├── 07-deployment/ # Deployment
├── 08-hpa/ # HPA
├── 09-configmap/ # ConfigMap
├── 10-secret/ # Secret
├── 11-helm/ # Helm
├── 12-kustomize/ # Kustomize
├── 12-kustomize-remote-base/ # Kustomize リモートbase
├── 13-rbac/ # RBAC
├── 14-argocd-introduction/ # Argo CD 入門
├── 14-argocd-kustomize/ # Argo CD + Kustomize
├── 15-istio/ # Istio サービスメッシュ
└── 99-capstone/ # EKS Capstone(別リポジトリへのリンク)
| リポジトリ | 説明 |
|---|---|
| eks-capstone-base | EKS を使った Kubernetes 学習の集大成プロジェクト。Terraform による EKS クラスタ構築、Kustomize リモートベース、Argo CD による GitOps、Istio サービスメッシュなどを実践 |