长期支持版本

    使用方法

    注意事项

    1. 容器 OS 升级为所有软件包原子升级,默认不在容器 OS 内提供单包升级能力。
    2. 容器 OS 升级为双区升级的方式,不支持更多分区数量。
    3. 单节点的升级过程的日志可在节点的/var/log/messages文件查看。
    4. 请严格按照提供的升级和回退流程进行操作,异常调用顺序可能会导致系统无法升级或回退。
    5. 使用docker镜像升级和mtls双向认证仅支持 openEuler 22.09 及之后的版本。
    6. 不支持跨大版本升级。

    升级指导

    在集群中创建类别为OS的定制对象,设置相应字段。类别OS来自于安装和部署章节创建的CRD对象,字段及说明如下:

    参数参数类型参数说明使用说明是否必选
    imagetypestring使用的升级镜像的类型需为 docker 或者 disk ,其他值无效,且该参数仅在升级场景有效
    opstypestring进行的操作,升级或者回退需为 upgrade ,或者 rollback ,其他值无效
    osversionstring用于升级或回退的镜像的OS版本需为 KubeOS version , 例如: KubeOS 1.0.0
    maxunavailableint同时进行升级或回退的节点数maxunavailable值设置为大于实际集群的节点数时也可正常部署,升级或回退时会按照集群内实际节点数进行
    dockerimagestring用于升级的容器镜像需要为容器镜像格式:repository/name:tag,仅在使用容器镜像升级场景下有效
    imageurlstring用于升级的磁盘镜像的地址imageurl中包含协议,只支持http或https协议,例如:https://192.168.122.15/update.img 仅在使用磁盘镜像升级场景下有效
    checksumstring用于升级的磁盘镜像校验的checksum(SHA-256)值仅在使用磁盘镜像升级场景下有效
    flagSafebool当imageurl的地址使用http协议表示是否是安全的需为 true 或者 false ,仅在imageurl使用http协议时有效
    mtlsbool用于表示与imageurl连接是否采用https双向认证需为 true 或者 false ,仅在imageurl使用https协议时有效
    cacertstringhttps或者https双向认证时使用的根证书文件仅在imageurl使用https协议时有效imageurl使用https协议时必选
    clientcertstringhttps双向认证时使用的客户端证书文件仅在使用https双向认证时有效mtls为true时必选
    clientkeystringhttps双向认证时使用的客户端公钥仅在使用https双向认证时有效mtls为true时必选

    imageurl指定的地址里包含协议,只支持http或https协议。imageurl为https协议时为安全传输,imageurl为http地址时,需指定flagSafe为true,即用户明确该地址为安全时,才会下载镜像。如imageurl为http地址且没有指定flagSafe为true,默认该地址不安全,不会下载镜像并且在升级节点的日志中提示用户该地址不安全。

    对于imageurl,推荐使用https协议,使用https协议需要升级的机器已安装相应证书。如果镜像服务器由用户自己维护,需要用户自己进行签名,并保证升级节点已安装对应证书。用户需要将证书放在容器OS /etc/KubeOS/certs目录下。地址由管理员传入,管理员应该保证网址的安全性,推荐采用内网地址。

    容器OS镜像的合法性检查需要由容器OS镜像服务提供者做合法性检查,确保下载的容器OS镜像来源可靠。

    编写YAML文件,在集群中部署 OS 的cr实例,用于部署cr实例的YAML示例如下:

    • 使用磁盘镜像进行升级。

      apiVersion: upgrade.openeuler.org/v1alpha1
      kind: OS
      metadata:
        name: os-sample
      spec:
        imagetype: disk
        opstype: upgrade
        osversion: edit.os.version
        maxunavailable: edit.node.upgrade.number
        dockerimage: ""
        imageurl: edit.image.url
        checksum: image.checksum
        flagSafe: imageurl.safety
        mtls: imageurl use mtls or not
        cacert:  ca certificate 
        clientcert:  client certificate 
        clientkey:  client certificate key 
      
    • 使用容器镜像升级。

      apiVersion: upgrade.openeuler.org/v1alpha1
      kind: OS
      metadata:
        name: os-sample
      spec:
        imagetype: docker
        opstype: upgrade
        osversion: edit.os.version
        maxunavailable: edit.node.upgrade.number
        dockerimage: dockerimage like repository/name:tag
        imageurl: ""
        checksum: ""
        flagSafe: false
        mtls: true
      

      使用容器镜像进行升级前请先制作升级所需的容器镜像,制作方式请见《容器OS镜像制作指导》。

    假定将上面的YAML保存到upgrade_v1alpha1_os.yaml。

    查看未升级的节点的 OS 版本。

    kubectl get nodes -o custom-columns='NAME:.metadata.name,OS:.status.nodeInfo.osImage'
    

    执行命令,在集群中部署cr实例后,节点会根据配置的参数信息进行升级。

    kubectl apply -f upgrade_v1alpha1_os.yaml
    

    再次查看节点的 OS 版本来确认节点是否升级完成。

    kubectl get nodes -o custom-columns='NAME:.metadata.name,OS:.status.nodeInfo.osImage'
    

    说明

    如果后续需要再次升级,与上面相同对 upgrade_v1alpha1_os.yaml 的 imageurl ,osversion,checksum,maxunavailable,flagSafe 或者dockerimage字段进行相应修改。

    回退指导

    使用场景

    • 虚拟机无法正常启动时,需要退回到上一可以启动的版本时进行回退操作,仅支持手动回退容器 OS 。
    • 虚拟机能够正常启动并且进入系统,需要将当前版本退回到老版本时进行回退操作,支持工具回退(类似升级方式)和手动回退,建议使用工具回退。

    手动回退

    手动重启虚拟机,选择第二启动项进行回退,手动回退仅支持回退到本次升级之前的版本。

    工具回退

    • 回退至任意版本。

      • 修改 OS 的cr实例的YAML 配置文件(例如 upgrade_v1alpha1_os.yaml),设置相应字段为期望回退的老版本镜像信息。类别OS来自于安装和部署章节创建的CRD对象,字段说明及示例请见上一节升级指导。

      • YAML修改完成后执行更新命令,在集群中更新定制对象后,节点会根据配置的字段信息进行回退。

        kubectl apply -f upgrade_v1alpha1_os.yaml
        
    • 回退至上一版本。

      • 修改upgrade_v1alpha1_os.yaml,设置osversion为上一版本,opstype为rollback,回退至上一版本(即切换至上一分区)。YAML示例如下:

        apiVersion: upgrade.openeuler.org/v1alpha1
        kind: OS
        metadata:
          name: os-sample
        spec:
          imagetype: ""
          opstype: rollback
          osversion: KubeOS pervious version
          maxunavailable: 2
          dockerimage: ""
          imageurl: ""
          checksum: ""
          flagSafe: false
          mtls:true
        
      • YAML修改完成后执行更新命令,在集群中更新定制对象后,节点会根据配置的字段信息进行回退。

        kubectl apply -f upgrade_v1alpha1_os.yaml
        

        更新完成后,节点会根据配置信息回退容器 OS。

    • 查看节点容器 OS 版本,确认回退是否成功。

      kubectl get nodes -o custom-columns='NAME:.metadata.name,OS:.status.nodeInfo.osImage'
      

    文档捉虫

    “有虫”文档片段

    问题描述

    提交类型 issue

    有点复杂...

    找人问问吧。

    PR

    小问题,全程线上修改...

    一键搞定!

    问题类型
    规范和低错类

    ● 错别字或拼写错误;标点符号使用错误;

    ● 链接错误、空单元格、格式错误;

    ● 英文中包含中文字符;

    ● 界面和描述不一致,但不影响操作;

    ● 表述不通顺,但不影响理解;

    ● 版本号不匹配:如软件包名称、界面版本号;

    易用性

    ● 关键步骤错误或缺失,无法指导用户完成任务;

    ● 缺少必要的前提条件、注意事项等;

    ● 图形、表格、文字等晦涩难懂;

    ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

    正确性

    ● 技术原理、功能、规格等描述和软件不一致,存在错误;

    ● 原理图、架构图等存在错误;

    ● 命令、命令参数等错误;

    ● 代码片段错误;

    ● 命令无法完成对应功能;

    ● 界面错误,无法指导操作;

    风险提示

    ● 对重要数据或系统存在风险的操作,缺少安全提示;

    内容合规

    ● 违反法律法规,涉及政治、领土主权等敏感词;

    ● 内容侵权;

    您对文档的总体满意度

    非常不满意
    非常满意
    提交
    根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
    文档捉虫
    编组 3备份