国外做旅游攻略的网站,python用于网站开发,网站建设详细需求文档,wordpress最新版优化Deployment控制器概述#xff1a;
Deployment控制器是k8s中最常用的资源对象#xff0c;为Replicaset和Pod创建提供了一种声明式的定义方法#xff0c;在Deployment对象中描述一个期望的状态#xff0c;Deployment控制器就会按照一定的控制速率把实际状态改成期望状态
Deployment控制器是k8s中最常用的资源对象为Replicaset和Pod创建提供了一种声明式的定义方法在Deployment对象中描述一个期望的状态Deployment控制器就会按照一定的控制速率把实际状态改成期望状态通过定义一个Deployment控制器会创建一个新的ReplicaSet控制器通过ReplicaSet创建Pod。删除Deployment控制器也会删除Deployment控制器下对应的Replicaset控制器和Pod资源。
使用Deployment控制器而不是直接使用ReplicaSet是因为Deployment对象拥有很多ReplicaSet没有的特性比如滚动升级、金丝雀发布、蓝绿部署和回滚等。
声明式定义是指直接修改资源清单yaml文件然后通过 kubectl apply -f *.yaml的方式就可以更改资源
Deployment是建立在rs之上的一个控制器可以管理多个rs每次更新镜像版本都会生成一个新的rs把旧的rs替换掉多个rs同时存在但是只有一个rs运行 rs v1控制三个pod删除一个pod在rs v2上重新建立一个依次类推直到全部都是由rs v2控制如果rs v2有问题还可以回滚Deployment是建构在rs之上的多个rs组成一个Deployment但是只有一个rs处于活跃状态.
Deployment工作原理如何管理rs和pod
通过Deployment对象可以轻松做到以下事情
创建ReplicaSet和Pod滚动升级和回滚应用平滑扩容和缩容暂停和继续Deployment
更新策略中的rollingupdate计算
maxSurge(默认25%):最大允许个数(直接用)或百分比(往上加), 如 55*25%计算为 7
maxUnavailable(默认25%):最小允许个数(直接用)或百分比(往下减), 如 5-5*25% 计算为 4
Deployment的yaml文件
vi deploy-demo.yaml
kind: Deployment
metadata:name: myapp-v1
spec:replicas: 2selector:matchLabels:app: myappversion: v1template:metadata:labels:app: myappversion: v1spec:containers:- name: myappimage: 172.16.80.140/myapp/myapp:v1imagePullPolicy: IfNotPresentports:- containerPort: 80 三者的名字也有关系deploy--replicas--pod
访问pod返回v1版本