Deployment概念
属于一种工作负载,也称为Controller(其他的Controller包括ReplicaSet、 DaemonSet、 StatefuleSet、 Job)
一次性部署多个Pod,控制Pod,使Pod拥有多副本,自愈,扩容缩容能力
Deployment的一次部署流程
1.kubectl创建deploymnet
2.deployment创建指定副本数量的ReplicaSet
3.ReplicaSet创建Pod
## 对象的命名方式是=父对象+随机字符创
## 如下图
deployment相关命令
# 创建一次deployment 选用tomcat镜像
kubectl create deployment mytomcat --image=tomcat:8.5.68
# 获取当前命名空间内的部署
kubectl get deployment
# 删除deployment
kubectl delete deployment <deployment名称>
deployment具有自愈能力,如果只是删除一次deployment中的某个pod deployment会自动进行恢复,需要删除deployment才有效
deployment的创建也可以使用yaml的方式
# 多副本创建
kubectl create deployment my-dep --image=nginx --replicas=3
# 多副本创建(yaml)
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: my-dep
name: my-dep
spec:
replicas: 3
selector:
matchLabels:
app: my-dep
template:
metadata:
labels:
app: my-dep
spec:
containers:
- image: nginx
name: nginx
# 集群的扩容和缩容 修改replicas的数字
kubectl scale --replicas=5 deployment/my-dep
# 集群的扩缩容,使用编辑yaml文件
kubectl edit deployment my-dep 修改replicas
版本控制
#历史记录
kubectl rollout history deployment/my-dep
#查看某个历史详情
kubectl rollout history deployment/my-dep --revision=2
#回滚(回到上次)
kubectl rollout undo deployment/my-dep
#回滚(回到指定版本)
kubectl rollout undo deployment/my-dep --to-revision=2
其他的工作负载