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

KubernetesKubernetesBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチャレンジでは、テックスタートアップの若手 DevOps エンジニアとして、Kubernetes のスキルを発揮します。NGINX をマイクロサービスとして使用する Web アプリケーションを更新し、サービスの中断を最小限に抑えます。タスクには、Kubernetes Deployment を更新して新しいイメージバージョンを使用することと、ローリングアップデートが成功したことを検証することが含まれます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedDeploymentGroup(["Advanced Deployment"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") kubernetes/AdvancedDeploymentGroup -.-> kubernetes/rollout("Rollout") subgraph Lab Skills kubernetes/create -.-> lab-434821{{"NGINX マイクロサービスのデプロイと更新"}} kubernetes/apply -.-> lab-434821{{"NGINX マイクロサービスのデプロイと更新"}} kubernetes/rollout -.-> lab-434821{{"NGINX マイクロサービスのデプロイと更新"}} end

NGINX Deployment の更新

若手 DevOps エンジニアとして、あなたのタスクは既存の Deployment を更新し、サービスの中断を最小限に抑えることです。

前提条件

作業を開始する前に、以下の準備ができていることを確認してください。

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

Deployment の状態を確認します。

kubectl get deployments

タスク

  1. web-app Deployment を更新し、イメージ nginx:1.24.0-alpine を使用するようにします。
  2. ローリングアップデートを使用して更新が正常に行われ、ダウンタイムがゼロであることを検証します。

要件

  • kubectl コマンドを使用して更新を行います。
  • 更新中に Deployment がダウンタイムなしで引き続き機能することを確認します。
  • kubectl rollout status を使用して更新の進行状況を監視します。
  • Pod のイメージを確認して、更新されたバージョンを検証します。

ヒント

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

まとめ

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