介绍
在本实验中,你将学习如何使用 Kubernetes 中的 Deployments 来扩展和管理 Pods。Deployments 是一种更高层次的抽象,允许你以声明式的方式管理和扩展 Pods 的副本集。通过使用 Deployments,你可以轻松地将应用程序更新到新版本、回滚到以前的版本,并根据需求的变化扩展或缩减应用程序的规模。
在本实验中,你将学习如何使用 Kubernetes 中的 Deployments 来扩展和管理 Pods。Deployments 是一种更高层次的抽象,允许你以声明式的方式管理和扩展 Pods 的副本集。通过使用 Deployments,你可以轻松地将应用程序更新到新版本、回滚到以前的版本,并根据需求的变化扩展或缩减应用程序的规模。
在创建资源之前,你需要一个正在运行的 Kubernetes 集群。Minikube 是一个轻量级的 Kubernetes 环境,可以在你的本地机器上运行。
导航到工作目录:
打开终端并导航到默认的项目文件夹:
cd /home/labex/project
启动 Minikube:
启动 Minikube 以初始化一个 Kubernetes 集群:
minikube start
验证 Minikube 是否正在运行:
检查 Minikube 集群的状态:
minikube status
kubelet
和 apiserver
等组件是否显示为 Running
。minikube start
。如果启动 Minikube 时遇到问题,可以使用 minikube delete
来重置环境(如有需要)。
/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-deployment
Deployment:kubectl apply -f my-deployment.yaml
这将创建 my-deployment
Deployment 及其关联的 ReplicaSets 和 Pods。
kubectl get deployments
这将显示集群中的 Deployments,包括 my-deployment
Deployment。
my-deployment
Deployment 扩展到 5 个副本:kubectl scale deployment my-deployment --replicas=5
这将把 my-deployment
Deployment 的副本数量增加到 5 个。
kubectl get deployments
这将显示集群中的 Deployments,包括具有 5 个副本的 my-deployment
Deployment。
my-deployment
Deployment 以使用 nginx:1.19
镜像:kubectl edit deployment my-deployment
这将在默认文本编辑器中打开 Deployment。将 image
字段更改为 nginx:1.19
并保存文件。
kubectl rollout status deployment/my-deployment
这将显示 my-deployment
Deployment 的最新滚动更新状态。
my-deployment
Deployment 回滚到上一个版本:kubectl rollout undo deployment/my-deployment
这将把 my-deployment
Deployment 回滚到上一个版本。
kubectl rollout status deployment/my-deployment
这将显示 my-deployment
Deployment 的最新滚动更新状态。
my-deployment
Deployment:kubectl delete deployment my-deployment
这将删除 my-deployment
Deployment 及其关联的 ReplicaSets 和 Pods。
在本实验中,你学习了如何在 Kubernetes 中创建和管理 Deployments。你创建了一个包含 3 个副本的 Deployment,将 Deployment 扩展到 5 个副本,更新 Deployment 以使用不同的镜像,并将 Deployment 回滚到上一个版本。