Flexvolume插件分批升级方案

简介: Flexvolume支持在线自动升级,您可以登陆控制台实现一键升级,参考:https://help.aliyun.com/document_detail/100605.html 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: OnDelete
目录
相关文章
|
存储 数据可视化 Linux
语雀停机事件后,你也在找替代方案吗?
2023年10月23日,语雀遭遇长达8小时的服务中断,严重影响了用户的日常工作和生活。事后官方提供了6个月免费会员作为补偿。此次事件引发用户对云笔记产品的可靠性思考,Obsidian和思源笔记因注重本地存留而受到关注。Obsidian支持双向链接、Markdown、本地存储及插件系统,适合个人知识管理;思源笔记则强调关系图谱和快速引用功能。此外,也有用户选择印象笔记、腾讯文档等云产品或使用编辑器+网盘的方式。如何选择合适的工具取决于个人需求和偏好。
1205 2
|
Python
Python编程中的魔法方法(Magic Methods)
【10月更文挑战第40天】在Python的世界中,魔法方法就像是隐藏在代码背后的神秘力量。它们通常以双下划线开头和结尾,比如 `__init__` 或 `__str__`。这些方法定义了对象的行为,当特定操作发生时自动调用。本文将揭开这些魔法方法的面纱,通过实际例子展示如何利用它们来增强你的类功能。
233 1
|
存储 监控 Linux
在 CentOS 7 中如何对一块 1TB 的未分配硬盘进行分区
【10月更文挑战第8天】本文介绍了在 CentOS 7 中进行磁盘分区和挂载的具体操作步骤,包括准备工作、创建分区、格式化分区、创建挂载点、临时和永久挂载分区等环节。通过一个具体案例,详细说明了如何对一块 1TB 的未分配硬盘进行分区,并将其挂载到不同的目录下,以满足不同服务的需求。同时,文章还分享了一些实践经验,帮助读者更好地理解和掌握这些技能。
297 1
|
机器学习/深度学习 存储 人工智能
量子计算与人工智能:探索两大前沿技术的结合
当谈到两个最令人兴奋的领域时,量子计算和人工智能都毫无疑问地处于前沿。这两个领域的结合潜力巨大,为解决一些传统计算难题和推动智能系统的发展带来了新的可能性。本文将探讨量子计算与人工智能的结合,并提供一个简单的代码案例来演示这种融合的潜力。
764 0
|
监控 安全 网络协议
SOCKS/SOCKS5代理协议是什么
SOCKS代理协议是客户端与服务器间通信的桥梁,通过中间服务器实现安全连接。SOCKS5是其升级版,增加了用户认证、UDP支持和IPv6地址功能,提供更强加密和更高安全性。常用于匿名浏览、企业流量监控及网络访问安全。理解其原理并恰当使用,能保障网络隐私和安全。
|
机器学习/深度学习 数据采集 算法
GEE python——基于多源遥感影像和随机森林分类器进行洪水概率预测
GEE python——基于多源遥感影像和随机森林分类器进行洪水概率预测
442 0
|
SQL Java 数据库连接
Hibernate出现表名is not mapped问题
要注意的是,这里的==spkbkt_nc_account_v2==在此处不是你数据库对应的表名,也不是你的映射文件的表名,而是你的实体对象的名称(是区分大小写的!必须与实体类名一致)。
|
弹性计算 固态存储 NoSQL
阿里云服务器ESSD Entry云盘与ESSD AutoPL、ESSD PL-X等其他云盘区别参考
最近阿里云新推出了一个ESSD Entry云盘,截止目前,阿里云服务器的云盘种类有ESSD AutoPL云盘、ESSD PL-X云盘、ESSD云盘、SSD云盘、ESSD Entry、高效云盘、普通云等,很多用户并不知道他们之前的区别,各个云盘的性能及主要适用场景是怎样的,本文就给大家介绍下他们之间的区别,以供参考和选择。
阿里云服务器ESSD Entry云盘与ESSD AutoPL、ESSD PL-X等其他云盘区别参考
|
算法 大数据 开发者
变换编码(上)| 学习笔记
快速学习变换编码(上),介绍了变换编码(上)系统机制, 以及在实际应用过程中如何使用。
 变换编码(上)| 学习笔记
|
NoSQL 关系型数据库 MySQL
图床项目详解-1
图床项目详解
503 0