【Day4】EKSクラスタにPodをデプロイ!~魂を宿す~
道場(クラスタ)が完成し、装備(CLI)も整った。
さあ、いよいよアプリケーションという"魂"をクラスタに宿すときが来た──。
今回のミッションは、Grafanaというオープンソースの可視化ツールをEKS上にデプロイし、実際に動かしてみること。
ただの練習ではない。「見える化の道具」そのものをクラスタに召喚するのだ!
🧠 Podとは何か?〜Kubernetesの最小実行単位〜
Kubernetesでアプリケーションを動かすとき、
一番小さな単位になるのが Pod(ポッド) です。
Podは「コンテナの入れ物」であり、例えばnginxやgrafanaといったアプリケーションを中に詰めて、 EKSクラスタ上で動かします。
複数コンテナを1つのPodに入れることもできますが、まずは単一のアプリケーションから始めましょう。
🛠️ Grafanaをデプロイするマニフェスト(YAML)
まずは、以下のようなYAMLファイル(grafana.yaml
)を作成してください:
apiVersion: v1
kind: Pod
metadata:
name: grafana
labels:
app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana:latest
ports:
- containerPort: 3000
これは Grafana の公式イメージを使用しており、ポート3000でWeb UIが起動します。
続いて、外部からアクセスするためのService(grafana-service.yaml
)も作ります:
apiVersion: v1
kind: Service
metadata:
name: grafana-service
spec:
type: NodePort
selector:
app: grafana
ports:
- protocol: TCP
port: 80
targetPort: 3000
nodePort: 30080
✅ nodePort: 30080 を指定することで、EKSクラスタに紐づくEC2ノードの 30080番ポート からGrafanaにアクセスできます!
🚀 PodとServiceを適用する
作成したYAMLを適用してみましょう。
cd <Yamlファイルがあるフォルダへ移動>
kubectl apply -f grafana.yaml
kubectl apply -f grafana-service.yaml
状態確認:
kubectl get pods
kubectl get svc
Podが Running になったら成功です!
次に、クラスタにアタッチされたEC2ノードのパブリックIPを確認し、以下のURLにアクセス
※SecurityGroupのインバウンドルールを修正してください。
http://<ノードのIP>:30080
デフォルトユーザー名・パスワードは以下:
- ユーザー名:admin
- パスワード:admin
ログイン後、パスワード変更を求められます。
🧱 よくあるつまずきポイント
Podが起動しない(CrashLoopBackOff)
kubectl describe pod grafana
上記でエラー詳細を確認できます。
例えば、コンテナイメージが存在しない・ポート番号が間違っているなどが原因。
ブラウザからアクセスできない
- セキュリティグループのポート開放を確認(NodePortの30080番が開いているか)
- kubectl get nodes -o wide で表示されたノードの外部IPを使用しているかチェック
🏁 まとめ:魂が宿ったEKSクラスタ
Grafanaという実アプリケーションをデプロイすることで、EKSクラスタの活用イメージがより明確になった
PodとServiceの基礎構成、起動確認、アクセス確認まで一通り実施
「クラスタ上でアプリが動いている」実感を得られる重要なDayだった!
次回予告 📢:【Day5】EKSのサービス公開!ロードバランサーで世界へ解き放て!
次回はいよいよ、ロードバランサー(ALB)を使って、
EKSクラスタ上のアプリケーションをインターネット経由で公開する方法に挑戦!
これができれば、あなたのEKSクラスタは"本物"になります🔥
よければフォロー&いいねお願いします🙏
続きが気になる方は、フォロー&いいね👍
コメントで「詰まったところ」「もっと知りたいこと」もお待ちしています!