flexvolume如何升级cpfs-client

简介: cpfs-client已经迭代多个版本,迭代的版本中fix了一些bug同时优化了cpfs的性能,举例说明:flexvolume支持如何对现有的cpfs-client进行升级。当前版本:cpfs-client-2.10.8-202.el7.x86_64cpfs-client-dkms-1.0.0-202.el7.noarch升级后版本:cpfs-client-dkms-1.0.0-208.el7.noarchcpfs-client-2.10.8-202.el7.x86_64

容器服务中CPFS 升级包含两部分:

Flexvolume-cpfs 插件升级;

CPFS-Client 驱动升级;

PS:flexvolume-cpfs插件只支持cpfs-client驱动安装,不支持驱动升级。所以需要先升级flexvolume-cpfs插件,再手动升级cpfs-client底层驱动;

下面提供两种方法完成CPFS升级:

  1. 采用ECS的自动运维服务(OOS方式),在多个worker节点同时执行cpfs-client升级脚本;(此方法需要先将目标节点排水,然后在节点上执行升级脚本等操作;)
  2. 先将flexvolume-cpfs升级到目标版本,通过弹性运维(弹出新节点,业务迁移到新节点,旧节点缩掉);

推荐您使用方法2来实现升级过程;步骤如下:

步骤1:升级Flexvolume-cpfs;

将flexvolume的镜像升级到目标版本(v1.14.8.96-0d85fd1-aliyun)版本。

配置flexvolume的container增加env变量,定义cpfs-client驱动版本:

        - name: CPFS_VERSION
          value: 2.10.8-202
        - name: DKMS_VERSION
          value: 1.0.0-208
        - name: CPFS_URL_PREFIX
          value: https://cpfs-client.oss-cn-beijing.aliyuncs.com/centos
CPFS_VERSION是cpfs-client的version;

DKMS_VERSION是cpfs-dkms-client的version;

CPFS_URL_PREFIX是下载指定cpfs版本的url前缀路径;

flexvolume-cpfs的yaml模板,执行升级命令:

$ kubectl apply -f flexvolume-cpfs.yaml

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: flexvolume-cpfs
  namespace: kube-system
  labels:
    k8s-volume: flexvolume-cpfs
spec:
  selector:
    matchLabels:
      name: flexvolume-cpfs
  template:
    metadata:
      labels:
        name: flexvolume-cpfs
    spec:
      hostPID: true
      hostNetwork: true
      tolerations:
      - operator: "Exists"
      priorityClassName: system-node-critical
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: type
                operator: NotIn
                values:
                - virtual-kubelet
      containers:
      - name: flexvolume-cpfs
        image: registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.14.8.96-0d85fd1-aliyun
        imagePullPolicy: Always
        securityContext:
          privileged: true
        env:
        - name: ACS_CPFS
          value: "true"
        - name: FIX_ISSUES
          value: "false"
        - name: CPFS_VERSION
          value: 2.10.8-202
        - name: DKMS_VERSION
          value: 1.0.0-208
        - name: CPFS_URL_PREFIX
          value: https://cpfs-client.oss-cn-beijing.aliyuncs.com/centos
        livenessProbe:
          exec:
            command:
            - sh
            - -c
            - ls /acs/flexvolume
          failureThreshold: 8
          initialDelaySeconds: 15
          periodSeconds: 60
          successThreshold: 1
          timeoutSeconds: 15
        volumeMounts:
        - name: usrdir
          mountPath: /host/usr/
        - name: etcdir
          mountPath: /host/etc/
        - name: logdir
          mountPath: /var/log/alicloud/
        - mountPath: /var/lib/kubelet
          mountPropagation: Bidirectional
          name: kubeletdir
      volumes:
      - name: usrdir
        hostPath:
          path: /usr/
      - name: etcdir
        hostPath:
          path: /etc/
      - name: logdir
        hostPath:
          path: /var/log/alicloud/
      - hostPath:
          path: /var/lib/kubelet
          type: Directory
        name: kubeletdir
  updateStrategy:
    rollingUpdate:
      maxUnavailable: 10%
    type: RollingUpdate

步骤2:业务迁移

弹出新节点:flexvolume-cpfs升级完成后,新弹出的节点会自动安装新版本的cpfs-client;

业务迁移:将老节点的pod排水到新弹出的节点上;

缩掉旧节点,完成业务迁移后,将老节点删除;

目录
相关文章
|
3月前
|
存储 对象存储
Ceph Reef(18.2.X)的对象存储网关(rgw)组件搭建
这篇文章是关于Ceph Reef(18.2.X)版本中对象存储系统的配置和使用案例,包括对象存储网关的概述、核心资源介绍、Ceph RGW支持的接口、高可用radosgw的部署、s3cmd工具的使用以及如何通过HTTP方式访问对象存储。
100 3
Ceph Reef(18.2.X)的对象存储网关(rgw)组件搭建
|
7月前
|
存储 分布式计算 Kubernetes
PVC、Ceph、HDFS、CPFS、NFS和OSS
PVC、Ceph、HDFS、CPFS、NFS和OSS都是分布式存储系统,下面是它们的详细介绍: 1. PVC(Persistent Volume Claim):PVC是Kubernetes中的一个资源请求,用于声明在集群中存储持久化数据的需求。PVC可以被用于存储应用程序的数据,例如数据库、日志文件等。PVC由Kubernetes集群管理员创建,并在Kubernetes集群中进行分配。
659 0
|
存储 Kubernetes 文件存储
使用阿里云容器ACK通过云存储网关(CSG)挂载OSS
本文将详细介绍如何使用阿里云容器服务ACK通过云存储网关挂载OSS。
1403 1
使用阿里云容器ACK通过云存储网关(CSG)挂载OSS
|
弹性计算 固态存储 数据管理
Flexvolume场景云盘迁移方案
如果您在阿里云容器服务部署了应用,并且使用云盘数据卷保存数据,您可以有数据迁移、数据回滚、磁盘类型变配等需求,本方案为您提供了Flexvolume、Disk-Controller所运行的集群中,云盘数据管理方案;
408 0
|
存储 Kubernetes 应用服务中间件
阿里云Kubernetes CSI实践—CPFS存储卷使用
1. 前言 CPFS(Cloud Paralleled File System)是一种并行文件系统。CPFS 的数据存储在集群中的多个数据节点,并可由多个客户端同时访问,从而能够为大型高性能计算机集群提供高 IOPS、高吞吐、低时延的数据存储服务。
4664 0
阿里云Kubernetes CSI实践—CPFS存储卷使用
|
文件存储 存储 Perl
阿里云Kubernetes CSI实践—NAS动态存储卷使用
1. 前言 NAS存储盘能将nfs(网络文件系统)挂载到你的Pod中,阿里云Kubernetes CSI支持静态存储卷挂载和动态存储卷挂载2种方式, 在静态存储卷挂载的方式中,通常需要手动编辑和创建一个pv/pvc进行挂载,当需要的pv/pvc数量很大的时候,手动创建就显得非常繁琐了,这时动态存储卷挂载的功能可以满足您的需求。
6437 0
|
应用服务中间件 文件存储 nginx
如何在Kubernetes集群动态使用 NAS 持久卷
介绍: 本文介绍的动态生成NAS存储卷的方案:在一个已有文件系统上,自动生成一个目录,这个目录定义为目标存储卷; 镜像地址:registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller:v1.11.5.4-433631d-aliyun 默认生成资源:生成的PV名字为:pvc-${pvc-uid}生成目录的名字:namespace-pvcname-pvname 可以再pvc的annotations中如下声明,自定义名字:生成的pv、目录名字为下面定义的名字。
8138 0
|
监控 应用服务中间件 文件存储
使用Logtail采集Kubernetes上挂载的NAS日志
采集k8s挂载Nas后的日志 该文档主要介绍使用logtail以两种不同的方式进行k8s挂载Nas后的日志采集。两种采集方式的实现原理是一样的,都是通过将Logtail和业务容器挂载到相同的NAS上,使Logtail和业务容器的日志数据共享,以此实现日志采集。
4490 0
使用Logtail采集Kubernetes上挂载的NAS日志
|
存储 机器学习/深度学习 缓存
阿里云文件存储CPFS升级版本发布
文件存储CPFS 2.0性能功能全面升级
|
存储 Kubernetes 网络协议
容器存储:Flexvolume 迁移 CSI (NAS、OSS数据卷)
本文介绍如何将Flexvolume插件挂载的NAS、OSS类型存储转换到CSI插件类型;如果您使用了云盘数据卷,本文提供的方案还不适合这个场景,具体方案敬请期待。
1699 0