介绍
在本实验中,你将学习如何使用 Kubernetes 中的 Deployments 来扩展和管理 Pods。Deployments 是一种更高层次的抽象,允许你以声明式的方式管理和扩展 Pods 的副本集。通过使用 Deployments,你可以轻松地将应用程序更新到新版本、回滚到以前的版本,并根据需求的变化扩展或缩减应用程序的规模。
启动 Minikube 集群
在创建资源之前,你需要一个正在运行的 Kubernetes 集群。Minikube 是一个轻量级的 Kubernetes 环境,可以在你的本地机器上运行。
导航到工作目录:
打开终端并导航到默认的项目文件夹:
cd /home/labex/project启动 Minikube:
启动 Minikube 以初始化一个 Kubernetes 集群:
minikube start- 此命令将在你的本地机器上设置一个单节点的 Kubernetes 集群。
- 根据系统性能,Minikube 可能需要几分钟才能启动。
验证 Minikube 是否正在运行:
检查 Minikube 集群的状态:
minikube status- 查找
kubelet和apiserver等组件是否显示为Running。 - 如果集群未运行,请重新运行
minikube start。
- 查找
如果启动 Minikube 时遇到问题,可以使用 minikube delete 来重置环境(如有需要)。
创建 Deployment
- 在
/home/labex/project/目录下创建一个名为my-deployment.yaml的文件,内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
ports:
- containerPort: 80
此 YAML 文件定义了一个包含 3 个副本的 Deployment,运行一个 Nginx 容器。selector 字段根据 app 标签选择由 Deployment 控制的 Pods。
- 部署
my-deploymentDeployment:
kubectl apply -f my-deployment.yaml
这将创建 my-deployment Deployment 及其关联的 ReplicaSets 和 Pods。
- 验证 Deployment 是否已创建:
kubectl get deployments
这将显示集群中的 Deployments,包括 my-deployment Deployment。
扩展 Deployment
- 将
my-deploymentDeployment 扩展到 5 个副本:
kubectl scale deployment my-deployment --replicas=5
这将把 my-deployment Deployment 的副本数量增加到 5 个。
- 验证 Deployment 是否已扩展:
kubectl get deployments
这将显示集群中的 Deployments,包括具有 5 个副本的 my-deployment Deployment。
更新 Deployment
- 编辑
my-deploymentDeployment 以使用nginx:1.19镜像:
kubectl edit deployment my-deployment
这将在默认文本编辑器中打开 Deployment。将 image 字段更改为 nginx:1.19 并保存文件。
- 验证 Deployment 是否已更新:
kubectl rollout status deployment/my-deployment
这将显示 my-deployment Deployment 的最新滚动更新状态。
回滚 Deployment
- 将
my-deploymentDeployment 回滚到上一个版本:
kubectl rollout undo deployment/my-deployment
这将把 my-deployment Deployment 回滚到上一个版本。
- 验证 Deployment 是否已回滚:
kubectl rollout status deployment/my-deployment
这将显示 my-deployment Deployment 的最新滚动更新状态。
清理
- 删除
my-deploymentDeployment:
kubectl delete deployment my-deployment
这将删除 my-deployment Deployment 及其关联的 ReplicaSets 和 Pods。
总结
在本实验中,你学习了如何在 Kubernetes 中创建和管理 Deployments。你创建了一个包含 3 个副本的 Deployment,将 Deployment 扩展到 5 个副本,更新 Deployment 以使用不同的镜像,并将 Deployment 回滚到上一个版本。


