跳到主要内容

构建

2024年11月13日
柏拉文
越努力,越幸运

一、认识


Deployment 的基本配置

  1. replicas:定义 Pod 的副本数量。

  2. selector:指定 Deployment 选择的 Pod 标签。

  3. template:定义 Pod 的模板,包括容器的镜像、端口等。

  4. strategy:定义更新策略,如 RollingUpdate(默认)和 Recreate

二、操作


2.1 编写 Deployment 文件

test-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: test-deployment
spec:
replicas: 3
selector:
matchLabels:
app: test-nginx
template:
metadata:
labels:
app: test-nginx
spec:
containers:
- name: test-nginx
image: registry.cn-hangzhou.aliyuncs.com/bolawen/nginx:1.27.1-perl-linux-arm64
ports:
- containerPort: 80

2.2 创建 Deployment 应用

使用以下命令创建 Deployment

kubectl apply -f test-deployment.yaml

2.3 查看 Deployment 状态

查看整体状态

kubectl get all 

查看 Pod 状态

kubectl get pods 

查看匹配的 Pod

kubectl get pods --selector=app=test-nginx

检查 Deployment 状态

kubectl get deployment test-deployment

查看 Deployment 详细信息

kubectl describe deployment test-deployment

2.4 查看 Deployment 日志

查看 Deployment 的详细信息: 可以使用以下命令查看 Deployment 的详细信息:

kubectl describe pod test-deployment

2.5 更新 Deployment 应用

我们可以通过更新 YAML 文件中的镜像版本(如 nginx:1.21.6),然后重新应用:

kubectl apply -f test-deployment.yaml

Kubernetes 会使用滚动更新的方式逐步替换旧的 Pod,确保服务不中断。

2.6 删除 Deployment 应用

kubectl delete -f test-deployment.yaml

2.7 回滚 Deployment 应用

如果某次更新失败,可以轻松地进行回滚:

kubectl rollout undo deployment test-deployment

2.8 扩容缩容 Deployment 应用

方式一、通过命令扩容缩容: 可以直接使用命令对 Deployment 进行扩容或缩容:

kubectl scale deployment test-deployment --replicas=5

这将把 test-deployment 的副本数扩展到 5 个。

方式二、通过 YAML 文件扩容缩容: 修改 spec.replicas 的值后,重新应用配置

kubectl apply -f deployment.yaml

这将把 test-deployment 的副本数扩展到 5 个。

2.9 滚动更新 Deployment 应用

滚动更新 Deployment 镜像

kubectl set image deployment nginx-deployment nginx=nginx:1.22