Deployment
PPG007 ... 2022-4-2 About 1 min
# Deployment
Deployment 可以控制 Pod,使 Pod 拥有多副本,自愈,扩缩容等能力。
# 创建 Deployment 及简单使用
命令行方式:
# 使用指定的镜像进行部署,并创建共计三份实例副本
kubectl create deployment demo --image=nginx --replicas=3
1
2
2
Tips
如果任意的副本 Pod 被删除或者 Pod 所在的机器宕机,则 Deployment 将会填补上缺失的副本个数,维持在 3 个。
删除 Deployment:
kubectl delete deployment demo
1
配置文件方式:
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo
namespace: example
spec:
selector:
matchLabels:
app: nginx
replicas: 2 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
查看 Deployment 的详情:
kubectl describe deployment demo -n example
1
查看 Deployment 创建的 Pods:
# app 后是 spec.template.metadata.labels.app
kubectl get pods -n example -l app=nginx
1
2
2
Tips
如果修改了配置文件的内容,再次调用 kubectl apply -f config.yaml
,将会将对应的 Deployment 更新为最新的配置文件制定的内容,并且是滚动更新。
扩缩容:
kubectl scale deployment/demo --replicas=5 -n example
1
版本回退:
# 查看历史版本
kubectl rollout history deployment/demo -n example
# 查看某个历史版本的详情
kubectl rollout history deployment/demo -n example --revision=1
#回滚(回到上次)
kubectl rollout undo deployment/demo -n example
#回滚(回到指定版本)
kubectl rollout undo deployment/demo -n example --to-revision=2
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8