部署与更新 NGINX 微服务

KubernetesBeginner
立即练习

介绍

在本次挑战中,你将扮演一家科技初创公司的初级 DevOps 工程师,展示你的 Kubernetes 技能。你将以 NGINX 作为微服务来更新一个 Web 应用程序,并确保服务中断降至最低。任务包括更新 Kubernetes 部署(Deployment)以使用更高版本的镜像,并验证滚动更新(Rolling Update)是否成功。

这是一个「挑战」项目,它与「引导实验」不同,你需要尝试独立完成挑战任务,而不是按照实验步骤一步步学习。挑战通常具有一定的难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。历史数据表明,这是一个 初学者 级别的挑战,通过率为 100%。它在学习者中获得了 100% 的好评率。

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

总结

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