Flexvolume插件分批升级方案
Flexvolume支持在线自动升级,您可以登陆控制台实现一键升级,参考:https://help.aliyun.com/document_detail/100605.html
Flexvolume升级不会影响您的应用,但是建议您可以选择在业务低峰的时候进行升级。您也可以参考本文给出的给flexvolume执行分配升级方案:
Flexvolume分批升级原理:
Daemonset更新策略支持:OnDelete、RollingUpdate两中模式,其中:
OnDelete:表示对DaemonSet更新模板后,pod不会马上升级,而是等待Pod删除重建的时候升级;
RollingUpdate:表示更新了模板Pod就会马上执行升级操作;
默认情况下升级策略是RollingUpdate,为了实现分批升级功能,我们修改升级策略为OnDelete,然后手动升级一批节点,查看数据卷挂载状态,然后再一批一批的升级;
Flexvolume分批升级步骤:
记录升级前的Flexvolume版本: # kubectl describe ds flexvolume -nkube-system | grep Image 给Flexvolume配置升级策略为OnDelete; # kubectl patch ds flexvolume -p '{"spec":{"updateStrategy":{"type":"OnDelete"}}}' -nkube-system 检查Flexvolume升级策略更新是否成功;下面命令有输出即认为成功; # kubectl get ds flexvolume -nkube-system -oyaml | grep "type: OnDelete" 部署新版本Flexvolume # kubectl apply -f flexvolume.yaml 检查Flexvolume DaemonSet镜像已经更新,到这一步pod还没有更新; # kubectl describe ds flexvolume -nkube-system | grep Image Image: registry.cn-beijing.aliyuncs.com/acs/flexvolume:v1.14.6.15-8d3b7e7-aliyun 列出所有Flexvolume Pod; # kubectl get pod -nkube-system -nkube-system -owide | grep flexvolume 分批升级:删除那个pod,pod重启后就会使用新镜像和配置; # kubectl delete pod ** -nkube-system 检查所有pod是否已经是最新版本; # for podname in `kubectl get pod -nkube-system | grep flexvolume | awk '{print $1}'`; do kubectl describe pod $podname -nkube-system | grep Image: ;done 将Flexvolume的更新策略修改为RollingUpdate;完成升级; # kubectl patch ds flexvolume -p '{"spec":{"updateStrategy":{"type":"RollingUpdate"}}}' -nkube-system
Flexvolume部署模板:
把下面模板的{{.Region}}字段换成您的集群region名。
apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: flexvolume namespace: kube-system labels: k8s-volume: flexvolume spec: selector: matchLabels: name: acs-flexvolume template: metadata: labels: name: acs-flexvolume spec: hostPID: true hostNetwork: true tolerations: - operator: "Exists" priorityClassName: system-node-critical affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: type operator: NotIn values: - virtual-kubelet nodeSelector: beta.kubernetes.io/os: linux containers: - name: acs-flexvolume image: registry-vpc.{{.Region}}.aliyuncs.com/acs/flexvolume:v1.14.6.15-8d3b7e7-aliyun imagePullPolicy: Always securityContext: privileged: true env: - name: ACS_DISK value: "true" - name: ACS_NAS value: "true" - name: ACS_OSS value: "true" - name: ACS_CPFS value: "false" resources: limits: cpu: 1000m memory: 1000Mi requests: cpu: 100m memory: 100Mi livenessProbe: exec: command: - sh - -c - ps -ef |grep /acs/flexvolume | grep monitoring | grep -v grep failureThreshold: 8 initialDelaySeconds: 15 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 15 volumeMounts: - name: usrdir mountPath: /host/usr/ - name: etcdir mountPath: /host/etc/ - name: logdir mountPath: /var/log/alicloud/ volumes: - name: usrdir hostPath: path: /usr/ - name: etcdir hostPath: path: /etc/ - name: logdir hostPath: path: /var/log/alicloud/ updateStrategy: type: RollingUpdate

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云存储容量单位包正式上线公测,全球首款通用存储售卖形态
2019年12月2日,阿里云存储容量单位包(Storage Capacity Unit,以下简称SCU)正式上线公测,可以用来抵扣多种不同类型云盘的按量付费账单。相比于随云服务器预付费购买的模式,SCU与按量付费云盘的组合使用,兼具性价比与资源使用的灵活性。 据介绍,SCU是一种全新的存储产品售卖形态,兼顾客户长周期成本优化诉求的同时,能够为客户提供最佳的资源使用灵活性。相比于按量付费的售卖形态,SCU最多可为客户节省67%的成本支出,同时单个SCU支持同时抵扣多种类型云盘的按量付费账单,极大简化了客户购买决策与日常运维复杂度。 阿里云产品负责人彭亚雄表示,随着客户数字化转型的不断深入,越来越多的客户在拥抱容器化、微服务架构,对IaaS层资源的使用也日趋灵活。SCU作为一种创新型的售卖形态,为客户提供最佳成本优化方案的同时,保持了资源使用上的灵活能力,客户可以在不同类型产品之间进行转换,而无需涉及繁琐、冗长的财务流程。 据某物联网公司架构总监所述,“使用SCU后,成本上有了很大优化,管理也更简单了。使用模式上还跟以前按量付费一样,很灵活,期待SCU支持更多存储产品类型。” 第三方统计数...
- 下一篇
ASP.NET Core on K8S深入学习(10)K8S包管理器Helm
本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。 一、关于Helm 1.1 为何需要Helm? 虽然K8S能够很好地组织和编排容器,但是缺少一个更高层次的应用打包工具,而Helm就是专门干这个事的。 通过Helm能够帮助开发者定义、安装和升级Kubernetes中的容器云应用。同时,也可以通过Helm进行容器云应用的分享。 1.2 Helm的架构 Helm的整体架构如下图(图片来源-Kubernetes中文社区)所示: Helm架构由Helm客户端、Tiller服务器端和Chart仓库所组成; 两个重要概念:(1)Chart是创建一个应用的信息集合,包括各种K8S对象的配置模板、参数定义等,可以理解为是apt、yum中的软件安装包;(2)Release是Chart的运行实例,代表了一个正在运行的应用。 Tiller部署在Kubernetes中,Helm客户端从Chart仓库中获取Chart安装包,并通过与Tiller服务器的交互将其安装部署到Kubernetes集群中。 简单说来,Helm客户端负责管理Chart,而 Til...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音