阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

资源控制器之Deployment

98次阅读
没有评论

共计 1131 个字符,预计需要花费 3 分钟才能阅读完成。

Deployment 为 Pod 和 ReplicaSet 提供了一个声明式定义 (declarative) 方法,用来替代以前的 ReplicationController 来方便的管理应用。典型的应用场景包括:

​- 定义 Deployment 来创建 Pod 和 ReplicaSet

​- 滚动升级和回滚应用

​- 扩容和缩容

资源控制器之 Deployment

Deployment 应用示例:

vim deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: name: my-nginx spec: selector: matchLabels: app: web-nginx replicas: 3 template: metadata: labels: app: web-nginx spec: containers: - name: web-nginx image: docker.io/nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80 kubectl create -f deploy.yaml --record ## --record 参数可以记录命令,我们可以很方便的查看每次 revision 的变化

创建完成后,我们可以查看下我们的 Pod 状态:

资源控制器之 Deployment


我们可以通过命令 kubectl scale deployment my-nginx –replicas=5 将副本数量扩容到 5 个:

资源控制器之 Deployment

也可以通过该命令 kubectl scale deployment my-nginx –replicas=2 缩容到 2 个:

资源控制器之 Deployment

这个时候我们注意一下,在缩容的时候,优先删除的是创建时间短的 Pod。下面我们在来看一下 deployment 的升级与回滚:

查看当前的 Pod 当中的 nginx 的版本:kubectl exec Pod-name -it – nginx -v

升级 images 版本:kubectl set image deployment/my-nginx web-nginx=nginx:1.9.1

资源控制器之 Deployment

使用命令 kubectl get rs 命令查看 Pod 的更新过程:

资源控制器之 Deployment

当升级完成后,查看一下当前 Pod 的 nginx 的版本:

资源控制器之 Deployment

通过命令查看 deployment 的历史记录:kubectl rollout history deployment my-nginx

资源控制器之 Deployment

回滚到之前的版本:kubectl rollout undo deployment –to-revision=1

资源控制器之 Deployment

回滚完成后,查看一下当前 Pod 的 nginx 的版本:

资源控制器之 Deployment

清理 Policy:

​可以通过设置 spec.revisonHistoryLimit 项来指定 deployment 最多保留多少 revision 历史记录。默认的会保留所有的 revision,如果将该项设置为 0,Deployment 就不允许回退了。

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-06-09发表,共计1131字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中