华为云用户手册

  • 通过命令行回退工作负载版本 例如上面升级的新版镜像有问题,可以执行kubectl rollout undo命令进行回滚。 $ kubectl rollout undo deployment nginx deployment.apps/nginx rolled back Deployment之所以能如此容易的做到回滚,是因为Deployment是通过ReplicaSet控制Pod的,升级后之前ReplicaSet都一直存在,Deployment回滚做的就是使用之前的ReplicaSet再次把Pod创建出来。Deployment中保存ReplicaSet的数量可以使用revisionHistoryLimit参数限制,默认值为10。
  • 通过控制台配置工作负载升级 在创建工作负载时,单击“展开高级配置”。 参考表1,设置升级策略。 表1 参数说明 参数 描述 升级方式 设置不同的升级策略,有如下两种。 RollingUpdate:滚动升级,即逐步创建新Pod再删除旧Pod,为默认策略。 Recreate:替换升级,即先把当前Pod删掉再重新创建Pod。 最大无效实例数(maxUnavailable) 与spec.replicas相比,可以有多少个Pod失效,也就是删除的比例,默认值是25%,比如spec.replicas为4,那升级过程中就至少有3个Pod存在,即删除Pod的步伐是1。同样这个值也可以设置成数字。 仅Deployment支持配置。 最大浪涌(maxSurge) 与spec.replicas相比,可以有多少个Pod存在,默认值是25%,比如spec.replicas为 4,那升级过程中就不能超过5个Pod存在,即按1个的步伐升级,实际升级过程中会换算成数字,且换算会向上取整。这个值也可以直接设置成数字。 仅Deployment支持配置。 实例可用最短时间(minReadySeconds) 指定新创建的 Pod 在没有任意容器崩溃情况下的最小就绪时间, 只有超出这个时间 Pod 才被视为可用。默认值为 0(Pod 在准备就绪后立即将被视为可用)。 最大保留版本数(revisionHistoryLimit) 用来设定出于回滚目的所要保留的旧 ReplicaSet 数量。 这些旧 ReplicaSet 会消耗 etcd 中的资源,并占用 kubectl get rs 的输出。 每个 Deployment 修订版本的配置都存储在其 ReplicaSets 中;因此,一旦删除了旧的 ReplicaSet, 将失去回滚到 Deployment 的对应修订版本的能力。 默认情况下,系统保留 10 个旧 ReplicaSet,但其理想值取决于新 Deployment 的频率和稳定性。 升级最大时长(progressDeadlineSeconds) 指定系统在报告 Deployment 进展失败 之前等待 Deployment 取得进展的秒数。 这类报告会在资源状态中体现为 Type=Progressing、Status=False、 Reason=ProgressDeadlineExceeded。Deployment 控制器将持续重试 Deployment。 将来,一旦实现了自动回滚,Deployment 控制器将在探测到这样的条件时立即回滚 Deployment。 如果指定,则此字段值需要大于 .spec.minReadySeconds 取值。 缩容时间窗(terminationGracePeriodSeconds) 优雅删除时间,默认为30秒,删除Pod时发送SIGTERM终止信号,然后等待容器中的应用程序终止执行,如果在terminationGracePeriodSeconds时间内未能终止,则发送SIGKILL的系统信号强行终止。 图1 升级策略
  • 步骤一:注册集群 登录U CS 控制台。 在左侧导航栏中选择“容器舰队”,单击附着集群选项卡中的“注册集群”按钮。 参考表1填写待添加集群的基础信息,其中带“*”的参数为必填参数。 表1 注册集群基础信息配置 参数 参数说明 集群名称* 输入集群的自定义名称,需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 集群服务商* 选择一个集群服务商。 所属区域* 选择集群所在的区域。 集群标签 非必填项,以键值对的形式为集群添加标签,可以通过标签实现集群的分类。键值对可自定义,以字母或者数字开头和结尾,由字母、数字、连接符(-)、下划线(_)、点号(.)组成,且63个字符之内。 上传KubeConfig* 上传kubectl的配置文件来完成集群认证,支持JSON或YAML格式。获取KubeConfig文件的操作步骤因厂商而异,请参见KubeConfig。 选择Context* 选择对应的Context。在完成KubeConfig文件上传后,选项列表将自动获取文件中的“contexts”字段。 默认值为KubeConfig文件中“current-context”字段指定的Context,若文件中无此字段则需要从列表中手动选择。 容器舰队 选择集群所属的舰队。 舰队用于权限精细化管理,一个集群只能加入一个舰队。若不选择舰队,集群注册成功后将显示在“未加入舰队的集群”页签下,后续还可以再添加至舰队中。 不支持在注册集群阶段选择已开通集群联邦能力的舰队,如果一定要加入这个舰队,请在集群注册成功后,再添加到该舰队中。关于集群联邦的介绍,请参见开通集群联邦章节。 如需新建舰队,请参见管理容器舰队。 单击“确定”,集群注册成功后如图1所示,请在30分钟内接入网络。您可选择集群的接入方式或单击右上角按钮查看详细的网络接入流程。 如您未在30分钟内接入网络,将会导致集群注册失败,可单击右上角按钮重新注册集群。如果已经接入但数据未采集上来,请等待2分钟后刷新集群。 图1 集群等待接入状态
  • 污点(Taints)说明 污点格式为“Key=Value:Effect”,Key和Value作为污点的标签,Value可以为空,Effect用于描述污点的效果。当前Effect支持如下两个选项: NoSchedule:不能容忍此污点的 Pod 不会被调度到集群上,但是现有 Pod 不会从集群中逐出。 NoExecute:表示不能容忍此污点的 Pod 不会被调度到集群上,同时会将集群上已存在的Pod驱逐。
  • 管理集群标签/污点 登录UCS控制台。 单击目标集群所在的容器舰队名称,在左侧导航栏选择“容器集群”,找到目标集群,在右上角单击进入“标签与污点管理”。 图1 标签与污点管理 单击按钮,设置节点标签/污点。如需执行多项操作,可多次添加,最多支持10条操作。 图2 添加标签/污点 选择“添加”或“删除”操作。 选择操作对象为“K8S标签”或“污点(Taints)”。 填写需要增加标签/污点的“键”和“值”。 如选择操作对象为“污点(Taints)”,需选择污点效果,关于污点效果说明请参见污点(Taints)说明。 单击“确定”,对所选节点执行标签/污点操作。
  • 步骤二:接入网络 在UCS控制台成功添加集群后,集群状态将会显示为“等待接入”,此时UCS并未打通与集群的网络连接,因此需要在集群中配置网络代理来接入网络。 请在添加集群后的30分钟内接入网络,您可单击右上角按钮查看详细的网络接入流程。如您未在30分钟内接入网络,将会导致集群注册失败,可单击右上角按钮重新注册集群。如果已经接入但状态未更新,请等待2分钟后刷新集群。 前往UCS控制台,单击待接入集群栏的“单击接入,选择”“公网接入”,可查看详细的公网接入流程。 下载集群代理agent的配置文件。 集群代理配置存在私有密钥信息,每个集群代理配置仅能下载一次,请您妥善保管。 将步骤2中的agent配置文件上传至节点。 单击“安装集群代理agent配置”,在待接入集群中执行如下命令,可单击右侧直接复制命令。 图1 安装集群代理agent配置 前往UCS控制台刷新集群状态,集群处于“运行中”。
  • 步骤一:注册集群 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 单击伙伴云集群选项卡中的“注册集群”按钮。 参考表1填写待添加集群的基础信息,其中带“*”的参数为必填参数。 表1 注册集群基础信息配置 参数 参数说明 集群名称* 输入集群的自定义名称,需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 集群服务商* 选择一个集群服务商。 所属区域* 选择集群所在的区域。 集群标签 非必填项,以键值对的形式为集群添加标签,可以通过标签实现集群的分类。键值对可自定义,以字母或者数字开头和结尾,由字母、数字、连接符(-)、下划线(_)、点号(.)组成,且63个字符之内。 上传KubeConfig* 上传kubectl的配置文件来完成集群认证,支持JSON或YAML格式。获取KubeConfig文件的操作步骤因厂商而异,请参见KubeConfig。 选择Context* 选择对应的Context。在完成KubeConfig文件上传后,选项列表将自动获取文件中的“contexts”字段。 默认值为KubeConfig文件中“current-context”字段指定的Context,若文件中无此字段则需要从列表中手动选择。 容器舰队 选择集群所属的舰队。 舰队用于权限精细化管理,一个集群只能加入一个舰队。若不选择舰队,集群注册成功后将显示在“未加入舰队的集群”页签下,后续还可以再添加至舰队中。 不支持在注册集群阶段选择已开通集群联邦能力的舰队,如果一定要加入这个舰队,请在集群注册成功后,再添加到该舰队中。关于集群联邦的介绍,请参见开通集群联邦章节。 如需新建舰队,请参见管理容器舰队。 单击“确定”。集群注册成功后请在30分钟内接入网络,您可选择集群的接入方式或单击右上角按钮查看详细的网络接入流程。 如您未在30分钟内接入网络,将会导致集群注册失败,可单击右上角按钮重新注册集群。如果已经接入但数据未采集上来,请等待2分钟后刷新集群。
  • 产品功能 镜像全生命周期管理 容器镜像服务 支持镜像的全生命周期管理,包括镜像的上传、下载、删除等。 私有镜像仓库 容器 镜像服务 提供私有镜像库,并支持细粒度的权限管理,可以为不同用户分配相应的访问权限(读取、编辑、管理)。 镜像加速 容器镜像服务通过华为自主专利的镜像下载加速技术,使CCE集群下载镜像时在确保高并发下能获得更快的下载速度。 镜像仓库触发器 容器镜像服务支持容器镜像版本更新自动触发部署。您只需要为镜像设置一个触发器,通过触发器,可以在每次镜像版本更新时,自动更新使用该镜像部署的应用。 镜像安全扫描(通过集成 容器安全 HSS)
  • 使用镜像 通过UCS管理的集群及联邦,均支持使用镜像仓库创建工作负载。镜像上传成功后,在集群中创建工作负载时可选择“镜像创建”,以UCS接管的CCE集群为例,具体操作如下: 登录集群控制台。 在新页面的左侧导航栏中选择“工作负载”,然后单击右上角“镜像创建”按钮。 在“基本信息”栏输入工作负载参数,以创建无状态工作负载为例。 负载类型:无状态工作负载。 负载名称:负载名称可自定义。 实例数量:请根据业务需要自行选择。 描述:请输入描述信息。 时区同步:选择是否开启时区同步。开启后容器与节点使用相同时区(时区同步功能依赖容器中挂载的本地磁盘,请勿修改删除)。 在“容器配置”栏单击“选择镜像”。 在“我的镜像”页签下,选择已上传的镜像,单击“确定”。 如所选镜像为公开镜像,无需选取“镜像访问凭证”。 如所选镜像为用户在镜像仓库中上传的私有镜像,需选取“镜像访问凭证”,否则无法拉取成功。 单击“创建密钥”,可创建镜像仓库的镜像访问凭证,具体操作参见创建镜像密钥。 图2 容器配置 单击“创建工作负载”,完成创建。如您想了解更多创建工作负载的步骤,请参见无状态负载。
  • 昇腾芯片驱动安装 请确保昇腾芯片已插入到节点上,确认设备型号,并从昇腾官方社区下载设备驱动,以及参考驱动安装指导进行安装: 安装完成后,执行以下命令,可查看节点的/dev目录下所有的芯片设备。 ls -l /dev/davinci* 执行如下命令,查看驱动加载是否成功。 npu-smi info 若出现如下回显信息,说明加载成功,具体回显信息请以实际情况为准。否则,说明加载驱动失败。请联系华为技术支持处理。
  • 如何确认节点NPU驱动已安装完成 NPU驱动安装成功后需要重启节点才能生效,且重启节点前需要确认驱动已经安装完成,否则驱动将无法生效,NPU资源不可用。驱动安装完成确认方式如下: UCS控制台,选择容器舰队,单击集群名称进入集群,在左侧导航栏中选择“插件中心”,单击插件名称查看插件“实例列表”,实例状态为“运行中”。 若在NPU驱动安装完成前就重启了节点,可能导致驱动安装失败,节点重启后集群“节点管理”页面对应的节点会显示“昇腾驱动未就绪”。此时需要先卸载该节点上的NPU驱动,再重启节点,才能重新安装NPU驱动,按上述步骤确认驱动安装完成后再重启节点。
  • 安装插件 登录UCS控制台,选择容器舰队,单击集群名称进入集群,在左侧导航栏中选择“插件中心”,在右侧找到huawei-npu插件,单击“安装”。 设置NPU参数,该插件推荐使用默认参数。插件提供的默认NPU参数可满足大多数的使用场景,您无需修改。 完成以上配置后,单击“安装”。 图1 安装huawei-npu插件 安装huawei-npu插件,需要确认已安装volcano插件。 驱动安装成功后需要重启节点才能生效,驱动安装成功确认方式请参见如何确认节点NPU驱动已安装完成。 插件卸载不会自动删除已安装的NPU驱动,用户需自行卸载删除相关资源。
  • 插件简介 E-Backup是云原生存储系统(Everest2.0)中负责云原生应用数据保护的子系统。它支持用户将应用数据(k8s资源)和业务数据(pv卷中的数据)备份到OBS桶中,也允许用户将某次备份数据恢复到指定的K8s集群中。 E-Backup通过备份和恢复两个子功能提供对以下使用场景的支持: 单集群下的容灾 周期性地对集群内部署的应用进行备份,在集群或者应用被破坏时通过恢复功能将应用重新部署到集群中,继续向外提供服务,实现应用的容灾。 同集群/跨集群的克隆 对于需要大批量部署到多个集群中的应用,特别是应用已经在某个集群工作一段时间后需要增添实例的情况。首先对处于工作状态的应用进行备份,随后恢复到同集群的不同Namespace下或者其他集群中,实现应用的克隆。 跨集群/跨云的迁移 由于网络、成本、业务地点变动等原因,需要将应用从某个集群迁移到跨Region的另一个集群,或者从其他云的集群迁入CCE。对迁出集群中的应用进行备份,而后恢复到迁入集群中,实现应用的迁移。
  • 约束与限制 目标集群Kubernetes版本需为1.15及以上,且集群中至少包含一个可用节点。 集群在安装插件时,需要保证集群可正常拉取SWR镜像。 备份/恢复过程中,需尽量保证集群处于稳态,不要触发增、删、改等变更行为,以免出现备份/恢复失败或不完整的情况。若集群发生变更,建议等15分钟后,集群处于稳态,再做备份操作。 E-Backup插件集成开源的Restic组件完成PV数据备份,会对备份时间点的数据做自有快照,并上传数据,不影响用户后续数据的读写,但Restic不进行文件内容的校验和业务一致性校验,其特性遵循restic约束。 Restic组件占用内存大小与初次备份的PV卷数据大小有关。若PV卷数据大于300G,建议采用 云存储 提供的迁移方式。若使用应用数据管理功能迁移大量PV数据,可修改restic实例的资源配额,具体操作方式请参见修改插件资源配额。 E-Backup插件遵循开源Velero和Restic插件的约束,例如在恢复过程中Service会清除ClusterIP以适应源集群和目标集群间的差异。 若在CCE集群中使用了扩展加密的Secret类型(cfe/secure-opaque),在恢复到其他集群时,需要提前手动创建同名、同类型的Secret(不同集群加解密物料不同),以免恢复的应用无法成功运行。 目前E-Backup插件暂不支持UCS本地集群。
  • 安装插件 安装E-Backup插件后,请谨慎卸载,否则可能导致已有的备份无法恢复。因为E-Backup插件在执行备份恢复任务时,依赖自定义资源BackupStorageLocation及其Secret,该资源在卸载后重新安装会发生更改。 登录集群控制台。 在左侧导航栏中单击“插件管理”,在可安装插件栏中单击E-Backup插件下的“安装”按钮。 参照表1进行插件规格配置。 表1 E-Backup插件规格配置 参数 参数说明 插件规格 单实例部署。 容器 设置插件容器实例的资源配额。 velero:提供K8s元数据备份/恢复支持。 restic:提供应用数据存储卷备份/恢复支持。 说明: 集群中需要预留足够的资源,若资源不足,插件实例将无法调度。 申请值需小于等于限制值,否则无法成功创建。 请根据备份/恢复数据量大小,适当调整资源限制以避免插件故障。 进行参数配置,当前支持配置以下参数。 volumeWorkerNum:代表并发执行数据卷备份的工作数量,默认为3。 { "volumeWorkerNum": 3 } 单击“安装”后,返回“插件管理”页面查看已安装插件,插件状态为“运行中”,表明该插件已在当前集群中安装成功。
  • 安装nvidia-fabricmanager服务 A100/A800 GPU支持 NvLink & NvSwitch,若您使用多GPU卡的机型,需额外安装与驱动版本对应的nvidia-fabricmanager服务使GPU卡间能够互联,否则可能无法正常使用GPU实例。 本文以驱动版本470.103.01为例,您可参考以下步骤进行安装,请根据实际情况需要替换驱动版本。 登录需要安装nvidia-fabricmanager服务的GPU节点,该节点需绑定EIP用以下载nvidia-fabricmanager服务。 安装与驱动版本对应的nvidia-fabricmanager服务,您可通过官方下载操作系统和驱动版本对应的安装包。 CentOS操作系统 以CentOS 7为例: driver_version=470.103.01 wget https://developer.download.nvidia.cn/compute/cuda/repos/rhel7/x86_64/cuda-drivers-fabricmanager-${driver_version}-1.x86_64.rpm rpm -ivh nvidia-fabric-manager-${driver_version}-1.x86_64.rpm Ubuntu等其他操作系统 以Ubuntu 18.04为例: driver_version=470.103.01 driver_version_main=$(echo $driver_version | awk -F '.' '{print $1}') wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu1804/x86_64/nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb dpkg -i nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb 启动nvidia-fabricmanager服务。 systemctl enable nvidia-fabricmanager systemctl start nvidia-fabricmanager 查看nvidia-fabricmanager服务状态。 systemctl status nvidia-fabricmanager
  • 获取驱动链接-公网地址 登录CCE控制台。 创建节点,在节点规格处选择要创建的GPU节点,选中后下方显示的信息中可以看到节点的GPU显卡型号。 登录到nvidia网站。 如图2所示,在“NVIDIA驱动程序下载”框内选择对应的驱动信息。其中“操作系统”必须选Linux 64-bit。 图2 参数选择 驱动信息确认完毕,单击“搜索”按钮,会跳转到驱动信息展示页面,该页面会显示驱动的版本信息如图3,单击“下载”到下载页面。 图3 驱动信息 获取驱动软件链接方式分两种: 方式一:如图4,在浏览器的链接中找到url=/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run的路径,补齐全路径为https://us.download.nvidia.com/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run,该方式节点需要绑定EIP 。 方式二:如图4,单击“下载”按钮下载驱动,然后上传到OBS,获取软件的链接,该方式节点不需要绑定EIP。 图4 获取链接
  • 安装插件 登录UCS控制台,单击集群名称进入集群,在左侧导航栏中选择“插件中心”。 在“可安装插件”中找到gpu-device-plugin,单击“安装”。 在安装插件页面,填写插件配置。 插件规格:可配置“默认”或“自定义”规格,请根据实际情况选择。 容器:选择“自定义”规格时支持设置。 Nvidia驱动:您可使用CCE提供的驱动地址或手动填写自定义Nvidia驱动的地址,集群下全部GPU节点将使用相同的驱动。 GPU虚拟化功能仅支持470.57.02、510.47.03、535.54.03版本的GPU驱动。 建议您使用CCE提供的驱动地址,以满足驱动版本的要求。 如果下载链接为公网地址,例如地址为nvidia官网地址https://us.download.nvidia.com/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run,则各GPU节点均需要绑定EIP。获取驱动链接方法请参考获取驱动链接-公网地址。 若下载链接为OBS上的链接,无需绑定EIP 。获取驱动链接方法请参考获取驱动链接-OBS地址。 请确保Nvidia驱动版本与GPU节点适配。 更改驱动版本后,需要重启节点才能生效。 对于linux 5.x内核系统,如华为云欧拉操作系统 2.0或ubuntu 22.04,建议使用470及以上版本驱动。 图1 安装gpu-device-plugin 驱动选择:若您不希望集群中的所有GPU节点使用相同的驱动,CCE支持以节点池为单位安装不同的GPU驱动。 插件将根据节点池指定的驱动版本进行安装,仅对节点池新建节点生效。 新建节点更新驱动版本后,需重启节点生效。非新建节点不支持更新驱动版本。 插件卸载会自动删除已安装的GPU驱动。 GPU虚拟化:选择开启GPU虚拟化,支持GPU单卡的算力、显存分割与隔离。 若集群中未安装volcano插件,将不支持开启GPU虚拟化,您可单击“一键安装”进行安装。如需配置volcano插件参数,请单击“自定义安装”,详情请参见volcano。 若集群中已安装volcano插件,但插件版本不支持使用GPU虚拟化,您可单击“一键升级”进行升级。如需配置volcano插件参数,请单击“自定义升级”,详情请参见volcano。 单击“安装”,安装gpu-device-plugin插件的任务即可提交成功。
  • 约束与限制 下载的驱动必须是后缀为“.run”的文件。 仅支持Nvidia Tesla驱动,不支持GRID驱动。 安装或重装插件时,需要保证驱动下载链接正确且可正常访问,插件对链接有效性不做额外校验。 gpu-device-plugin插件仅提供驱动的下载及安装脚本执行功能,插件的状态仅代表插件本身功能正常,与驱动是否安装成功无关。 如您使用A100/A800的多GPU卡机型,您需要手动安装与版本驱动对应的nvidia-fabricmanager服务才可以正常使用,详情请参见安装nvidia-fabricmanager服务。 本地集群只支持x86系统架构类型。
  • 通过kubectl命令行创建NPU应用 本节以创建无状态工作负载(Deployment)为例,说明使用kubectl命令创建训练任务的方法。 apiVersion: apps/v1 kind: Deployment metadata: annotations: description: '' labels: appgroup: '' version: v1 name: demo namespace: default spec: selector: matchLabels: app: demo version: v1 template: metadata: labels: app: demo version: v1 spec: containers: - name: container-1 image: swr.cn-north-7.myhuaweicloud.com/ief-ies/demo:latest imagePullPolicy: IfNotPresent env: - name: PAAS_APP_NAME value: demo - name: PAAS_NAMESPACE value: default - name: PAAS_PROJECT_ID value: 0aa612a71f80d4322fe0c010beb80e8a resources: requests: cpu: 250m memory: 512Mi huawei.com/ascend-1980: '1' ##需要使用的npu卡数量 limits: cpu: 250m memory: 512Mi huawei.com/ascend-1980: '1' ##需要使用的npu卡数量 terminationGracePeriodSeconds: 30 schedulerName: volcano ## 使用的调度器指定为volcano tolerations: - key: node.kubernetes.io/not-ready operator: Exists effect: NoExecute tolerationSeconds: 300 - key: node.kubernetes.io/unreachable operator: Exists effect: NoExecute tolerationSeconds: 300 initContainers: [] volumes: [] replicas: 2 revisionHistoryLimit: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 25% maxSurge: 25% progressDeadlineSeconds: 600
  • 步骤二:安装插件 如果您的集群中已安装符合基础规划的插件,您可以跳过此步骤。 更改驱动版本后,需要重启节点才能生效。 登录UCS控制台,单击集群名称进入集群,在左侧导航栏中选择“插件管理”,查看“已安装插件”中是否存在volcano插件与gpu-device-plugin插件。 若未安装volcano插件,请安装该插件,具体操作请参见volcano。 若未安装gpu-device-plugin插件,请安装该插件,具体操作请参见gpu-device-plugin。
  • 基础规划 配置 支持版本 集群版本 v1.25.15-r7及以上 操作系统 华为云欧拉操作系统 2.0 系统架构 X86 GPU类型 T4、V100 GPU驱动版本 470.57.02、510.47.03、535.54.03 容器运行时 containerd 插件 集群中需要同时安装以下插件: volcano插件:1.10.1及以上版本 gpu-device-plugin插件:2.0.0及以上版本
  • 卸载节点 方法一: 在执行机上执行 ./ucs-ctl delete node -c [集群名称] -n [node ip1],[node ip2],… 使用-n指定具体IP,使用英文逗号分隔。 方法二: 在执行机执行 ./ucs-ctl delete node -c [集群名称] -m node.csv 使用-m指定纳管时使用的节点文件,可以一次性卸载所有节点。 如果命令执行失败,请参考如何手动清理本地集群节点?处理。
  • 纳管节点 在执行机上使用./ucs-ctl config generator -t node -o node.csv命令生成纳管节点时使用的配置文件。 将所需节点的参数写入配置文件,使用英文逗号分隔,如下所示。参数描述如表1。 表1 配置文件参数描述 参数 描述 Node IP 节点IP User SSH连接用户 Password SSH连接密码 示例: Node IP,User,Password 123.45.6.789,root,******** 123.45.6.890,root,******** 在执行机上执行以下命令./ucs-ctl create node -c [集群名称] -m node.csv,完成节点的纳管。 node.csv文件中存在密钥信息,请妥善保管。
  • 上传配置文件 登录UCS控制台,单击待接入集群栏的“点击接入”进入集群接入界面,可选择“公网接入”和“私网接入”。 选择接入方式并下载代理配置文件。 若选择“公网接入”,直接在界面单击“下载文件”,下载本地集群代理配置文件“agent-[集群名称].yaml”。 若选择“私网接入”,需要先选择项目,再选择安装前准备(私网接入)中创建的终端节点,然后单击“下载文件”,下载本地集群代理配置文件“agent-[集群名称].yaml”。 集群代理配置文件存在私有密钥信息,每个集群仅能下载一次,请您妥善保管。 输入集群安装所需参数并下载集群配置文件“cluster-[集群名称].yaml”。 若集群为1.28.5及之后版本,此处可选择“集群架构”X86 或者 ARM类型。 图1 下载集群配置文件 当前集群的节点CPU架构暂不支持异构混部。若本地集群安装失败,请参考本地集群安装失败怎么办? 1.28.5及之后集群版本,支持集群架构选择。 通过远程传输工具,使用root用户将下载的“agent-[集群名称].yaml”和“cluster-{集群名称}.yaml”文件上传到执行机的“/root/”目录下。 若您需要使用L4或L7负载均衡能力,则需要将集群网络类型配置为BGP,具体操作请参见Cilium。 执行机如果出现SSH连接超时,请参考虚拟机SSH连接超时处理方法处理。 选择集群架构后,请确认ucs-ctl的执行机与集群架构一致。
  • 接入集群 登录UCS控制台,在“等待接入”状态下的目标集群栏中单击“单击接入”,选择“私网接入”。 选择项目,再选择购买终端节点中创建的终端节点。 下载集群代理agent的配置文件。 集群代理配置存在私有密钥信息,每个集群代理配置仅能下载一次,请您妥善保管。 将步骤3中的agent配置文件上传至节点。 单击“安装集群代理agent配置”,在待接入集群中执行如下命令,可单击右侧直接复制命令。 图3 安装集群代理agent配置 私网接入的集群无法通过私网下载SWR镜像仓库中的镜像,请确保工作负载运行的节点可访问公网。 拉取proxy-agent容器镜像要求集群需要具备公网访问能力,或将proxy-agent镜像上传至集群可访问的镜像仓库,否则将导致proxy-agent部署失败。 前往UCS控制台刷新集群状态,集群处于“运行中”。
  • 注册集群 登录UCS控制台。 在左侧导航栏中选择“容器舰队”,单击附着集群选项卡中的“注册集群”按钮。 参考表1填写待添加集群的基础信息,其中带“*”的参数为必填参数。 表1 注册集群基础信息配置 参数 参数说明 集群名称* 输入集群的自定义名称,需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 集群服务商* 选择一个集群服务商。 所属区域* 选择集群所在的区域。 集群标签 非必填项,以键值对的形式为集群添加标签,可以通过标签实现集群的分类。键值对可自定义,以字母或者数字开头和结尾,由字母、数字、连接符(-)、下划线(_)、点号(.)组成,且63个字符之内。 上传KubeConfig* 上传kubectl的配置文件来完成集群认证,支持JSON或YAML格式。获取KubeConfig文件的操作步骤因厂商而异,请参见KubeConfig。 选择Context* 选择对应的Context。在完成KubeConfig文件上传后,选项列表将自动获取文件中的“contexts”字段。 默认值为KubeConfig文件中“current-context”字段指定的Context,若文件中无此字段则需要从列表中手动选择。 容器舰队 选择集群所属的舰队。 舰队用于权限精细化管理,一个集群只能加入一个舰队。若不选择舰队,集群注册成功后将显示在“未加入舰队的集群”页签下,后续还可以再添加至舰队中。 不支持在注册集群阶段选择已开通集群联邦能力的舰队,如果一定要加入这个舰队,请在集群注册成功后,再添加到该舰队中。关于集群联邦的介绍,请参见开通集群联邦章节。 如需新建舰队,请参见管理容器舰队。 单击“确定”,集群注册成功后如图1所示,请在30分钟内接入网络。您可选择集群的接入方式或单击右上角按钮查看详细的网络接入流程。 如您未在30分钟内接入网络,将会导致集群注册失败,可单击右上角按钮重新注册集群。如果已经接入但数据未采集上来,请等待2分钟后刷新集群。 图1 集群等待接入状态
  • 购买终端节点 登录 VPC终端节点 控制台,单击“购买终端节点”。 选择终端节点的区域。 选择“按名称查找服务”,输入服务名称“cn-north-4.open-vpcep-svc.29696ab0-1486-4f70-ab35-a3f6b1b37c02”,并单击“验证”。 图2 购买终端节点 选择准备网络环境中与集群网络连通的虚拟私有云以及对应的子网。 根据需求选择终端节点的“节点IP”为“自动分配”或“手动分配”。 配置完其他参数后,单击“立即购买”,并进行规格确认。 规格确认无误,单击“提交”,任务提交成功。 参数信息配置有误,需要修改,单击“上一步”,修改参数,然后单击“提交”。
  • 前提条件 已创建一个准备接入UCS的集群,并且集群状态正常。 在UCS提供服务的区域中创建一个VPC,具体操作请参见创建虚拟私有云和子网,当前仅支持“华北-北京四”区域。 该VPC子网网段不能与IDC或第三方云中已使用的网络网段重叠,否则将无法接入集群。例如,IDC中已使用的VPC子网为192.168.1.0/24,那么华为云VPC中不能使用192.168.1.0/24这个子网。 已获取待添加集群的KubeConfig文件,具体操作步骤因厂商而异,请参见KubeConfig。关于KubeConfig文件的更多说明请参考使用kubeconfig文件组织集群访问。
  • 升级参数说明 最大浪涌(maxSurge) 与spec.replicas相比,可以有多少个Pod存在,默认值是25%,比如spec.replicas为 4,那升级过程中就不能超过5个Pod存在,即按1个的步伐升级,实际升级过程中会换算成数字,且换算会向上取整。这个值也可以直接设置成数字。 仅Deployment在“滚动升级”方式下支持配置。 最大无效实例数(maxUnavailable) 与spec.replicas相比,可以有多少个Pod失效,也就是删除的比例,默认值是25%,比如spec.replicas为4,那升级过程中就至少有3个Pod存在,即删除Pod的步伐是1。同样这个值也可以设置成数字。 仅Deployment、DaemonSet在“滚动升级”方式下支持配置。 实例可用最短时间(minReadySeconds) 指定新创建的 Pod 在没有任意容器崩溃情况下的最小就绪时间, 只有超出这个时间 Pod 才被视为可用。默认值为 0(Pod 在准备就绪后立即将被视为可用)。 仅Deployment、DaemonSet支持配置。 最大保留版本数(revisionHistoryLimit) 用来设定出于回滚目的所要保留的旧 ReplicaSet 数量。 这些旧 ReplicaSet 会消耗 etcd 中的资源,并占用 kubectl get rs 的输出。 每个工作负载修订版本的配置都存储在其 ReplicaSets 中;因此,一旦删除了旧的 ReplicaSet, 将失去回滚到工作负载的对应修订版本的能力。 默认情况下,系统保留 10 个旧 ReplicaSet,但其理想值取决于新工作负载的频率和稳定性。 升级最大时长(progressDeadlineSeconds) 指定系统在报告 Deployment 进展失败 之前等待 Deployment 取得进展的秒数。 这类报告会在资源状态中体现为 Type=Progressing、Status=False、 Reason=ProgressDeadlineExceeded。Deployment 控制器将持续重试 Deployment。 将来,一旦实现了自动回滚,Deployment 控制器将在探测到这样的条件时立即回滚 Deployment。 如果指定,则此字段值需要大于 .spec.minReadySeconds 取值。 仅Deployment支持配置。 缩容时间窗(terminationGracePeriodSeconds): 优雅删除时间,默认为30秒,删除Pod时发送SIGTERM终止信号,然后等待容器中的应用程序终止执行,如果在terminationGracePeriodSeconds时间内未能终止,则发送SIGKILL的系统信号强行终止。
共100000条