wordpress 网站锁,企业网络营销项目,杭州网站制作报价,台州网站制作报价方案实现方式#xff1a;
RollingUpdate 滚动更新机制 当某个服务需要升级时#xff0c;传统的做法是#xff0c;先将要更新的服务下线#xff0c;业务停止后再更新版本和配置#xff0c;然后重新启动服务。
如果业务集群规模较大时#xff0c;这个工作就变成了一个挑战…方案实现方式
RollingUpdate 滚动更新机制 当某个服务需要升级时传统的做法是先将要更新的服务下线业务停止后再更新版本和配置然后重新启动服务。
如果业务集群规模较大时这个工作就变成了一个挑战而且全部停止了服务再逐步升级的方式会导致服务较长时间不可用。
针对这个问题k8s提供了滚动更新(rolling-update)的方式来解决上述问题。
滚动更新是针对pod来操作的它通过一次只更新一小部分副本成功后再更新更多的副本最终完成所有副本的更新。
滚动更新的最大的好处是零停机整个更新过程始终有副本在运行从而保证了服务的连续性 spec:replicas: 5minReadySeconds: 120 #Pod被认为是可用状态的最小秒数,应用启动并注册nacos延迟时间。默认是0selector:matchLabels:run: httpservicestrategy:rollingUpdate:#指定更新时最大扩展的pod数maxSurge: 2#指定可接受的不可用pod数maxUnavailable: 1
apiVersion: apps/v1
kind: Deployment
metadata:name: httpservice-deployment
spec:replicas: 5minReadySeconds: 120 #Pod被认为是可用状态的最小秒数,应用启动并注册nacos延迟时间。默认是0selector:matchLabels:run: httpservicestrategy:rollingUpdate:#指定更新时最大扩展的pod数maxSurge: 2#指定可接受的不可用pod数maxUnavailable: 1template:metadata:labels:run: httpservicespec:containers:- name: http-serviceimage: httpd:2.4.33ports:- containerPort: 80 apiVersion: v1
kind: Service
metadata:name: $IMG_NAMEnamespace: rz-dtlabels:app: $IMG_NAME
spec:type: NodePortports:- port: 8091nodePort: 31082 #service对外开放端口selector:app: $IMG_NAME
---
apiVersion: apps/v1
kind: Deployment #对象类型
metadata:name: $IMG_NAME #名称namespace: rz-dtlabels:app: $IMG_NAME #标注
spec:replicas: 1 #运行容器的副本数修改这里可以快速修改分布式节点数量progressDeadlineSeconds: 600 #在Deployment 在进度卡住6分钟后报告minReadySeconds: 120 #Pod被认为是可用状态的最小秒数。默认是0strategy:rollingUpdate:maxSurge: 1 #升级过程中激增Pod的最大数量maxUnavailable: 0 #升级过程中不可用Pod的最大数量type: RollingUpdateselector:matchLabels:app: $IMG_NAMEtemplate:metadata:labels:app: $IMG_NAMEspec:containers: #docker容器的配置- name: $IMG_NAMEenv:- name: aliyun_logs_catalinavalue: stdoutimage: rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/$IMG_NAME:$IMG_TAG # pull镜像的地址 ip:prot/dir/images:tagimagePullPolicy: Always #pull镜像时机#command: [java,-Dserver.port8055,-jar,/usr/local/cenobitor/k8s-springboot-demo.jar]ports:- containerPort: 8091 #容器对外开放端口,需与springboot配置文件一致volumeMounts:- name: time-configmountPath: /etc/localtimereadOnly: true- name: volume-logsmountPath: /logssubPath: logsresources:limits:cpu: 500mmemory: 1Girequests:cpu: 10mmemory: 50Mi#从私有仓库拉取镜像凭证imagePullSecrets:- name: rz-dt-miyue-vpcvolumes:- name: time-confighostPath:path: /usr/share/zoneinfo/Asia/Shanghai- name: volume-logspersistentVolumeClaim:claimName: rz-dt-nas-volume-claim