部署与更新 NGINX 微服务

KubernetesKubernetesBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在这个挑战中,你将作为一名初级 DevOps 工程师,在一家科技初创公司中展示你的 Kubernetes 技能。你将使用 NGINX 作为微服务来更新一个 Web 应用程序,并确保服务中断最小化。任务包括更新 Kubernetes Deployment 以使用较新的镜像版本,并验证滚动更新的成功。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedDeploymentGroup(["Advanced Deployment"]) 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 工程师,你的任务是更新现有的部署,以确保服务中断最小化。

前提条件

在开始之前,请确保你已经完成以下操作:

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-appkubectl set image 更新镜像。
  • 使用 kubectl rollout status 监控滚动更新状态。
  • 使用 kubectl get pods -o jsonpath 验证正在运行的 Pod 及其容器镜像。
✨ 查看解决方案并练习

总结

在这个挑战中,你通过将 NGINX Web 应用程序部署更新到较新的镜像版本,展示了你的 Kubernetes 技能。你确保了更新过程中的零停机时间,并验证了滚动更新的成功。这个练习突显了在 Kubernetes 环境中执行更新时保持高可用性的重要性。