NGINX マイクロサービスのデプロイと更新

KubernetesBeginner
オンラインで実践に進む

はじめに

このチャレンジでは、新興テック企業のジュニア DevOps エンジニアとして、Kubernetes のスキルを実証していただきます。マイクロサービスとして稼働している NGINX を使用した Web アプリケーションを、サービスの停止を最小限に抑えながら更新することが目標です。具体的には、Kubernetes のデプロイメント(Deployment)を更新して新しいバージョンのイメージを適用し、ローリングアップデート(Rolling Update)が正常に完了したことを確認するタスクに取り組んでいただきます。

NGINX デプロイメントの更新

ジュニア DevOps エンジニアとしてのあなたの任務は、既存のデプロイメントを更新し、サービスの切断を最小限に抑えることです。

事前準備

開始する前に、以下の環境が整っていることを確認してください。

minikube start
kubectl apply -f ~/project/k8s-manifests/nginx-deployment.yaml

デプロイメントの状態を確認します。

kubectl get deployments

タスク

  1. web-app デプロイメントを更新し、イメージ nginx:1.24.0-alpine を使用するように変更してください。
  2. ローリングアップデートによって更新が正常に行われ、ダウンタイムが発生しなかったことを確認してください。

要件

  • 更新には kubectl コマンドを使用すること。
  • 更新中もデプロイメントがダウンタイムなしで機能し続けていることを確認すること。
  • kubectl rollout status を使用して、更新の進捗を監視すること。
  • Pod のイメージを確認し、バージョンが更新されていることを検証すること。

ヒント

  • イメージの更新には kubectl edit deployment web-app または kubectl set image を使用します。
  • kubectl rollout status でロールアウトの状況を監視できます。
  • 実行中の Pod とそのコンテナイメージの検証には kubectl get pods -o jsonpath が便利です。
✨ 解答を確認して練習

まとめ

このチャレンジでは、NGINX Web アプリケーションのデプロイメントを新しいイメージバージョンに更新することで、Kubernetes のスキルを実証しました。プロセス中のゼロダウンタイムを維持し、ローリングアップデートの成功を確認しました。この演習は、Kubernetes 環境でアップデートを行う際に、高い可用性(High Availability)を維持することの重要性を強調するものです。