0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kubernetes でのコンテナビルド&デプロイを Makefile で簡単に実行する

Posted at

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️⃣ 使い方

  1. make k8s-build-start を実行
make k8s-build-start
  1. デプロイが完了!
kubectl get pods

🎉 まとめ

これで、
make k8s-build-start で Kubernetes の環境構築が一瞬で完了!
✅ シンプルな Makefile とシェルスクリプトで管理がラク!
✅ Docker ビルド、kind へのロード、Kubernetes の適用がワンコマンド!

ぜひ試してみてください!🚀

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?