构建
2024年11月13日
一、认识
Deployment
的基本配置
-
replicas
:定义Pod
的副本数量。 -
selector
:指定Deployment
选择的Pod
标签。 -
template
:定义Pod
的模板,包括容器的镜像、端口等。 -
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