Kubernetes の環境構築時に、Docker イメージのビルドや kind へのロード、リソースの適用を手動で行うのは面倒ですよね?
そこで、Makefile
を活用して、シンプルに make k8s-build-start
で一括実行できるようにしました!🚀
🎯 目標
- Kubernetes クラスター (
kind
) の作成 - Docker イメージのビルド&kind へのロード
- Kubernetes リソース(PVC、ConfigMap、Deployment)の適用
-
make k8s-build-start
で簡単にデプロイできるようにする
1️⃣ シンプルな構成のシェルスクリプト
kubernetes-build-start.sh
title=kubernetes-build-start.sh
#!/bin/bash
set -e # エラーが発生したら停止
# 使用するサービス一覧
SERVICES=("backend" "frontend" "database")
# kind クラスターの作成
kind create cluster --name my-cluster || echo "✅ kind クラスターは既に作成済み"
# Docker イメージのビルド&kind へのロード
echo "🚀 Docker イメージをビルド&ロード中..."
for service in "${SERVICES[@]}"; do
docker build -t "$service:latest" "./$service"
kind load docker-image "$service:latest" --name my-cluster
echo "✅ $service のビルド&ロード完了"
done
# Kubernetes リソース適用
echo "🚀 Kubernetes リソースを適用..."
kubectl apply -f k8s/
echo "🎉 全てのデプロイが完了しました!"
2️⃣ Kubernetes の構成ファイル
k8s/deployment.yaml
title=k8s/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
spec:
replicas: 1
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
containers:
- name: backend
image: backend:latest
ports:
- containerPort: 8080
k8s/service.yaml
title=k8s/service.yaml
apiVersion: v1
kind: Service
metadata:
name: backend-service
spec:
selector:
app: backend
ports:
- protocol: TCP
port: 80
targetPort: 8080
3️⃣ Makefile
で簡単実行
Makefile
title=Makefile
k8s-build-start:
bash kubernetes-build-start.sh
4️⃣ 使い方
-
make k8s-build-start
を実行
make k8s-build-start
- デプロイが完了!
kubectl get pods
🎉 まとめ
これで、
✅ make k8s-build-start
で Kubernetes の環境構築が一瞬で完了!
✅ シンプルな Makefile
とシェルスクリプトで管理がラク!
✅ Docker ビルド、kind へのロード、Kubernetes の適用がワンコマンド!
ぜひ試してみてください!🚀