lvncerpedia

実際のコードベースにどう導入するか

もちろん、それはとても良いやり方です!Kubernetes(k8s)を学ぶとき、「実際のコードベースにどう導入するか?」という視点は非常に実践的で、理解が深まりやすいです。

以下のようなステップで進めるのがおすすめです:

ステップ 1: 既存のリポジトリを選ぶ

自分の作った Web アプリや、GitHub 上のシンプルな Node.js/Django/Flask アプリなどを対象に選ぶ。

最初はモノリス構成の小さめなアプリがベスト。

ステップ 2: Docker 化する

Kubernetes では基本的にすべてのアプリがコンテナとして動くので、まずは Dockerfile を書く。

例: Python Flask アプリの Dockerfile

FROM python:3.10

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

CMD ["python", "app.py"]

ステップ 3: Kubernetes マニフェストを用意する

Deployment や Service を書いて、Kubernetes 上でアプリを動かす準備をする。

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: flask-app
spec:
replicas: 1
selector:
matchLabels:
app: flask-app
template:
metadata:
labels:
app: flask-app
spec:
containers: - name: flask-app
image: your-dockerhub-username/flask-app:latest
ports: - containerPort: 5000

service.yaml

apiVersion: v1
kind: Service
metadata:
name: flask-app-service
spec:
selector:
app: flask-app
ports: - protocol: TCP
port: 80
targetPort: 5000
type: LoadBalancer

ステップ 4: Minikube や kind でローカルにクラスターを立てて動作確認

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
kubectl get pods
kubectl get svc

ステップ 5: 演習を通して理解を深める

スケーリングしてみる(replicas の数を変える)

Pod が落ちたときに自動復旧する様子を見る

ConfigMap や Secret を使って環境変数を渡してみる

必要であれば、簡単な演習用テンプレートのリポジトリも紹介できるよ。 やってみたいアプリのジャンルとかある?(例:ToDo アプリ、チャットアプリ、API サーバーなど)