当前位置: 首页 > news >正文

西宁网站建设有限公司真正免费的网站建站

西宁网站建设有限公司,真正免费的网站建站,区块链开发公司,什么类型的产品可以做网站出口在传统的应用升级时,通常采用的方式是先停止服务,然后升级部署,最后将新应用启动。这个过程面临一个问题,就是在某段时间内,服务是不可用的,对于用户来说是非常不友好的。而kubernetes滚动更新,…

在传统的应用升级时,通常采用的方式是先停止服务,然后升级部署,最后将新应用启动。这个过程面临一个问题,就是在某段时间内,服务是不可用的,对于用户来说是非常不友好的。而kubernetes滚动更新,将避免这种情况的发生。

对于Kubernetes集群来说,一个service可能有多个pod,滚动升级(RollingUpdate)就是指每次更新部分Pod,直至所有的Pod更新完成,达到平滑升级的效果,而不是在同一时刻将该Service下面的所有Pod停止。
 

参数配置

spec:
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1


字段含义
type:设置更新策略。有两个可选项:recreate和RollingUpdate(默认)。Recreate表示全部重新创建,RollingUpdate表示滚动更新。
maxSurge:升级过程中最多可以比原先设置多出的POD数量,可以是数字,也可以是比例。例如:maxSurage=1,replicas=5,则表示升级过程中最多会有5+1个POD。
升级过程中最多允许有多少个POD处于不可用状态。maxUnavailable =1 表示升级过程中最多会有一个pod可以处于无法服务的状态,在这里就是至少要有5-1个pod正常。
说明:maxSurge和maxUnavaible在更新策略为RollingUpdate时才需要设置。
 

测试demo

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-deploy
  name: nginx-deploy
spec:
  replicas: 5
  revisionHistoryLimit: 10
  minReadySeconds: 5
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  selector:
    matchLabels:
      app: nginx-deploy
  template:
    metadata:
      labels:
        app: nginx-deploy
    spec:
      restartPolicy: Always
      containers:
        - name: mynginx
          image: nginx:1.23
          imagePullPolicy: IfNotPresent
举例:

[root@k8s-master ~]# kubectl apply -f deployment.yaml
deployment.apps/nginx-deploy created
[root@k8s-master ~]# 
 

使用nginx:1.23版本启动了5个pod。如下所示:

 

现在我们进行升级,使用nginx:1.23.1。我这里使用命令行,写到yaml中也可以。

kubectl set image deployment/nginx-deploy mynginx=nginx:1.23.1 --record
 

通过命令kubectl get pod -w我们可以看到整个清晰地过程,即创建一个pod,再删除一个pod,直至所有的pod被更新完成。

查看下yaml 

[root@k8s-master ~]# kubectl get deploy nginx-deploy -o yaml
apiVersion: apps/v1
kind: Deployment
...
spec:
  containers:
  - image: nginx:1.23.1
    imagePullPolicy: IfNotPresent
    name: mynginx
...
[root@k8s-master ~]#
 

可以发现nginx已经被更新为1.23.1版本,更新成功。

版本回退

有版本升级,就会有对应的版本回退。我们可以通过以下命令来完成版本回退。

# 历史记录
[root@k8s-master ~]# kubectl rollout history deployment/nginx-deploy
deployment.apps/nginx-deploy
REVISION  CHANGE-CAUSE
1         <none>
2         kubectl set image deployment/nginx-deploy mynginx=nginx:1.23.1 --record=true
[root@k8s-master ~]#
 

VERSION=1表示最初始的版本。VERSION=2表示一次升级的版本,依次类推...

# 查看某个版本历史详情
kubectl rollout history deployment/nginx-deploy --revision=1
 

# 回滚(回到上次)
kubectl rollout undo deployment/nginx-deploy

# 回滚(回到指定版本)
kubectl rollout undo deployment/nginx-deploy --to-revision=2
 

说明:这些命令中的nginx-deploy是部署的名称,换成自己的即可。前面数字表示版本。

注意点
1、更新策略
我们这里使用的是滚动更新RollingUpdate。如何使用Recreate,会和传统的升级方法一样,先停掉所有的pod,然后重建pod。

2、参数设置
当maxSurge设置为0的时候,maxUnavailable不能设置为0。maxSurge=0时先删除后启动,maxSurge!=0时先启动后删除。

3、两个字段说明
spec:
  revisionHistoryLimit: 10
  minReadySeconds: 5
 

 

  • revisionHistoryLimit表示保留的版本数。

  • minReadySeconds表示pod启动后经过多少秒pod才开始对外提供服务。

这两个字段一般都需要设置。

http://www.mmbaike.com/news/100637.html

相关文章:

  • 新建网站外链怎么做推广平台 赚佣金
  • 莒县做网站的电话百度服务平台
  • 可视化网站建设软件有哪些网络营销平台排名
  • 网站权重有什么用如何seo推广
  • 做个网站怎样做的电脑优化软件哪个好用
  • 从做系统网站的收藏怎么找昆明长尾词seo怎么优化
  • 上饶网站网站建设自动优化app
  • 网页安全站点设置深圳百度推广开户
  • 甘肃网站建设公司百度升级最新版本下载安装
  • 义乌制作网站开发如何做营销活动
  • 杭州网站建设公司排名seo网站推广招聘
  • 百度网站考核期腾讯广告代理
  • 中国洛阳网seo排名是什么意思
  • 魔都网站建设世界球队最新排名
  • 有没有教做韩餐的网站厦门seo排名扣费
  • 做网站1200百度小说搜索风云榜排行榜
  • 搜索引擎优化人员优化seo导航站
  • 网站做移动适配以后可以取消吗泉州排名推广
  • 网站设计公司收费标准谷歌seo和百度区别
  • 企业网站里面的qq咨询怎么做安徽企业网站建设
  • 用什么软件做网站最简单网站排名优化客服
  • 许昌哪里做网站wordpress官网入口
  • 福安网站建设淘宝店铺推广方法
  • txt做网站 插入图片自媒体培训
  • 最近下载的网站怎么找如何建造自己的网站
  • 企业公司动态网站设计与实现重庆疫情最新数据
  • 淘宝网站是哪个公司做的今日国际新闻头条15条
  • 网站着陆页有多少个东莞整站优化
  • 新乡商城网站建设哪家专业竞价推广遇到恶意点击怎么办
  • 电商网站建设成本360优化大师软件