华为云用户手册

  • 检查节点yum源(HCE、Redhat) 在本地集群执行纳管节点操作时,部分安装组件如ntpdate等,需要从yum源中获取依赖包。故纳管节点前,请确保节点上yum源是可用的,若不可用,请执行如下操作。 以安装用户(默认为root)登录待安装的集群管理节点。 修改/etc/yum.repos.d/目录下的软件源配置文件。 具体信息以实际规划的yum源服务器地址为准。 保存文件,执行如下命令。 sudo yum-get update (可选)若有多个管理节点,如HA版本,请分别登录到规划的管理节点执行上述操作。
  • 主机最小化安装要求 不使用的软件包不允许存在系统中 遵循最小化安装原则,只安装业务需要的软件包与服务组件。减少系统漏洞,降低系统遭受攻击风险。 用于生产环境的系统中不允许保留开发和编译工具 系统中不允许存在如下开发工具和编译工具: 'cpp' (/usr/bin/cpp) 'gcc' (/usr/bin/gcc) 'ld' (/usr/bin/ld) 'lex' (/usr/bin/lex) 'rpcgen' (/usr/bin/rpcgen) 如果产品的生产环境,比如在部署或运行过程中需要python、lua等解释器,则可以保留解释器运行环境,否则不允许保留。 'python' (/usr/bin/python) 'lua' (/usr/bin/lua) 同样情形适用于perl解释器,Suse系统的一些管理程序依赖perl解释器,在这种情形下,则可保留perl解释器,否则需要去除。 perl (/usr/bin/perl) 操作系统中不允许安装显示安全策略的工具 防止系统的安全信息泄露。依照业务需求,预安装的安全加固工具,限制其文件的所有者为root,并且仅root具有执行权限。 操作系统中不允许存在网络嗅探类的工具 tcpdump、ethereal等嗅探工具不允许出现在系统上,防止被恶意使用。 在不需要Modem系统中不应默认安装Modem 在不需要Modem系统中不应默认安装Modem,严格遵循系统最小化安装。
  • 集群安装检查项 在安装本地集群前,您需要对节点进行一系列检查。 表格中的命令适用于HCE与Redhat操作系统,若您使用Ubuntu操作系统,请将命令中的“yum”修改为“apt”。 检查类型 检查名 检查内容 检查通过标准 集群检查 节点架构检查 所有安装的Master节点架构检查 所有安装节点架构必须一致 节点主机名检查 所有安装的Master节点主机名检查 所有安装节点主机名必须不同 节点时钟同步检查 所有安装的Master节点时钟同步状态检查 所有安装节点主机时间差异必须小于10秒 VIP使用检查 VIP是否被其他节点占用 VIP必须处于空闲状态,检查依据22端口是否能被访问通 节点检查 节点语言检查 节点语言设置必须符合约束 节点语言设置符合en_US.UTF-8、en_GB.UTF-8任何一种 节点操作系统检查 节点操作系统必须符合约束 节点操作系统为Ubuntu 22.04、Redhat 8.6、HCE 2.0任何一种 系统命令检查 节点具备基础命令行工具 操作系统具备以下命令行工具:ifconfig、netstat、curl、systemctl、nohup、pidof、mount、uname、lsmod、swapoff、hwclock、ip、ntpdate(对接ntp场景具备) 端口空闲检查 节点必装服务端口未被占用 操作系统以下端口未被占用: 4001、4002、4003、2380、2381、2382、4011、4012、4013、4005、4006、4007、5444、8080、10257、10259、4133、20100、9444、20102、9443、5443、4134、4194、10255、10248、10250、80、443、10256、10249、20101 keepalived安装检查 keepalived未安装 执行yum list --installed keepalived列表无对应服务 haproxy安装检查 haproxy未安装 执行yum list --installed haproxy列表无对应服务 runit安装检查 runit未安装 执行yum list --installed runit列表无对应服务 paas用户检查 节点paas用户处于可创建状态 节点paas用户不存在且id为10000的用户未被占用 ntp服务检查 ntp服务处于可用状态 节点执行ntpdate -u ${ntp_server}可正常访问ntp
  • 安装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
  • 安装插件 登录UCS控制台,单击集群名称进入集群,在左侧导航栏中选择“插件中心”。 在“可安装插件”中找到gpu-device-plugin,单击“安装”。 在安装插件页面,填写插件配置。 插件规格:可配置“默认”或“自定义”规格,请根据实际情况选择。 容器:选择“自定义”规格时支持设置。 Nvidia驱动:您可使用CCE提供的驱动地址或手动填写自定义Nvidia驱动的地址,集群下全部GPU节点将使用相同的驱动。 GPU虚拟化功能仅支持470.57.02、470.103.01、470.141.03、510.39.01、510.47.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内核系统,如Huawei Cloud EulerOS 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插件的任务即可提交成功。
  • 获取驱动链接-公网地址 登录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 获取链接
  • 约束与限制 下载的驱动必须是后缀为“.run”的文件。 仅支持Nvidia Tesla驱动,不支持GRID驱动。 安装或重装插件时,需要保证驱动下载链接正确且可正常访问,插件对链接有效性不做额外校验。 gpu-device-plugin插件仅提供驱动的下载及安装脚本执行功能,插件的状态仅代表插件本身功能正常,与驱动是否安装成功无关。 如您使用A100/A800的多GPU卡机型,您需要手动安装与版本驱动对应的nvidia-fabricmanager服务才可以正常使用,详情请参见安装nvidia-fabricmanager服务。
  • 步骤四:接入集群 登录UCS控制台,在“等待接入”状态下的目标集群栏中单击“私网接入”。 选择项目,再选择步骤三:购买终端节点中创建的终端节点。 图5 选择终端节点 将2中的agent配置文件上传至节点。 单击“安装集群代理agent配置”,在待接入集群中执行如下命令,可单击右侧直接复制命令。 图6 安装集群代理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,若文件中无此字段则需要从列表中手动选择。 容器舰队 选择集群所属的舰队。 舰队用于权限精细化管理,一个集群只能加入一个舰队。若不选择舰队,集群注册成功后将显示在“未加入舰队的集群”页签下,后续还可以再添加至舰队中。 不支持在注册集群阶段选择已开通集群联邦能力的舰队,如果一定要加入这个舰队,请在集群注册成功后,再添加到该舰队中。关于集群联邦的介绍,请参见开通集群联邦章节。 如需新建舰队,请参见管理容器舰队。 单击“确定”,集群注册成功后如图2所示,请在30分钟内接入网络。您可选择集群的接入方式或单击右上角按钮查看详细的网络接入流程。 如您未在30分钟内接入网络,将会导致集群注册失败,可单击右上角按钮重新注册集群。如果已经接入但数据未采集上来,请等待2分钟后刷新集群。 图2 集群等待接入状态
  • 前提条件 已创建一个准备接入UCS的集群,并且集群状态正常。 在UCS提供服务的区域中创建一个VPC,具体操作请参见创建虚拟私有云和子网。当前仅支持“华北-北京四”区域。 该VPC子网网段不能与IDC或第三方云中已使用的网络网段重叠,否则将无法接入集群。例如,IDC中已使用的VPC子网为192.168.1.0/24,那么华为云VPC中不能使用192.168.1.0/24这个子网。 已获取待添加集群的KubeConfig文件,具体操作步骤因厂商而异,请参见KubeConfig。关于KubeConfig文件的更多说明请参考使用kubeconfig文件组织集群访问。
  • 步骤三:购买终端节点 登录UCS控制台,单击待接入集群栏的“单击接入”进入集群接入界面,单击“私网接入”。 查看“创建终端节点”中的服务名称,单击,记录服务名称。 图3 创建终端节点 登录VPC终端节点控制台,单击“创建终端节点”,创建连接不同服务的终端节点。 选择终端节点的区域。 选择“按名称查找服务”,输入所记录的服务名称,并单击“验证”。 图4 购买终端节点 选择步骤一:准备网络环境中与集群网络连通的虚拟私有云以及对应的子网。 根据需求选择终端节点的“节点IP”为“自动分配”或“手动分配”。 配置完其他参数后,单击“立即购买”,并进行规格确认。 规格确认无误,单击“提交”,任务提交成功。 参数信息配置有误,需要修改,单击“上一步”,修改参数,然后单击“提交”。
  • 约束与限制 华为云账号用户需具备UCS FullAccess和VPCEndpoint Administrator权限。 若集群地域位于境外,应确保您的行为符合所适用的法律法规要求。 请确保注册的集群为通过CNCF一致性认证,且版本在1.19至1.28之间的Kubernetes集群。 附着集群通过私网接入时,由于网络限制,镜像仓库功能的使用可能受限: 私网接入的集群无法通过私网下载SWR镜像仓库中的镜像,请确保工作负载运行的节点可访问公网。
  • 集群备份 本地备份 创建备份文件压缩包存放的目录。 执行备份命令: ./ucs-ctl backup 集群名 --path 备份路径 --type local 示例如下: ./ucs-ctl backup gpu-test --path /home/ggz/gpu-test --type local 执行成功后,会在指定的备份路径下产生名为:集群名-backup-时间戳.tar.gz这样一个备份压缩文件。 备份压缩文件存在ha.yaml、etcd-snapshot目录、crt目录,etcd-snapshot包含etcd备份数据,crt包含证书与加解密材料。 远端备份
  • 步骤二:安装插件 如果您的集群中已安装符合基础规划的插件,您可以跳过此步骤。 更改驱动版本后,需要重启节点才能生效。 登录UCS控制台,单击集群名称进入集群,在左侧导航栏中选择“插件管理”,查看“已安装插件”中是否存在volcano插件与gpu-device-plugin插件。 若未安装volcano插件,请安装该插件,具体操作请参见volcano。 若未安装gpu-device-plugin插件,请安装该插件,具体操作请参见gpu-device-plugin。
  • 基础规划 配置 支持版本 集群版本 v1.25.15-r7及以上 操作系统 Huawei Cloud EulerOS 2.0 GPU类型 T4、V100 GPU驱动版本 470.57.02、470.103.01、470.141.03、510.39.01、510.47.03 容器运行时 containerd 插件 集群中需要同时安装以下插件: volcano插件:1.10.1及以上版本 gpu-device-plugin插件:2.0.0及以上版本
  • 配置条件触发自动切流策略 在CPD组件部署成功并正常运行后,您需要创建Remedy对象,以在特定触发条件下执行特定动作,如在集群CoreDNS组件故障后执行MCI切流。 Remedy对象的配置文件示例如下所示。示例YAML定义了一个Remedy对象,可以通过member1或member2集群上的CPD上报CoreDNS解析功能,在功能故障时自动将该集群上的MCI进行切流。详细的Remedy对象参数说明请参见表2。 apiVersion: remedy.karmada.io/v1alpha1 kind: Remedy metadata: name: foo spec: clusterAffinity: clusterNames: - member1 - member2 decisionMatches: - clusterConditionMatch: conditionType: ServiceDomainNameResolutionReady operator: Equal conditionStatus: "False" actions: - TrafficControl 表2 Remedy参数说明 参数 描述 spec.clusterAffinity.clusterNames 策略关注的集群名列表。仅在该列表中的集群会执行指定动作,为空时不会执行任何动作。 spec.decisionMatches 触发条件列表。当上述集群列表中指定的集群满足任一触发条件时,即会执行指定动作。当列表为空时,表示无条件触发。 conditionType 触发条件的类型。当前仅支持ServiceDomainNameResolutionReady类型,即CPD上报的CoreDNS域名解析状态。 operator 判断逻辑,仅支持Equal和NotEqual两种值,即等于和不等于。 conditionStatus 触发条件的状态。 actions 策略要执行的动作,目前仅支持TrafficControl,即流量控制。
  • UCS集群概述 UCS服务支持跨云、跨地域的集群统一接入、统一管理,支持接入如下几种集群类型: 华为云集群:包括华为云CCE集群和CCE Turbo集群。 本地集群:由UCS提供的、运行在您的数据中心基础设施之上的Kubernetes集群,如UCS on Bare Metal、UCS on VMware。 附着集群:满足CNCF(Cloud Native Computing Foundation)标准的第三方Kubernetes集群,如AWS(EKS)、GCP(GKE)以及自建的Kubernetes集群。 多云集群:由UCS提供的、运行在第三方云服务供应商(如AWS)基础设施之上的Kubernetes集群,如UCS on AWS、UCS on Azure。 伙伴云集群:包括伙伴云(如天翼云、移动云)CCE集群。 当前局点仅支持接入华为云集群、本地集群、附着集群与伙伴云集群。 如果您接入的集群中包含超大容量的节点,并且希望其不被统计在UCS控制台集群列表上的CPU和内存分配率指标中,那么需要为这个节点打上“type:virtual-kubelet”标签,以便您准确识别集群资源分配情况。为集群节点打标签请参照为节点添加标签/污点。 父主题: UCS集群
  • 创建有状态负载 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在“容器舰队”页签下找到已开通集群联邦的舰队,单击名称进入详情页。 在左侧导航栏中选择“工作负载”,切换至“有状态负载”页签,并单击右上角“镜像创建”。 若使用已有的YAML创建工作负载,请单击右上角“YAML创建”。 设置工作负载基本信息。 负载类型:选择“有状态负载”。 负载名称:新增工作负载的名称,命名必须唯一。 命名空间:选择工作负载所在命名空间。如需新建命名空间,请参见创建命名空间。 描述:工作负载的描述信息。 实例数量:设置多集群的工作负载中各集群的实例数。用户可以设置具体实例个数,默认为2。每个工作负载实例都由相同的容器部署而成。在UCS中可以通过设置弹性扩缩容策略,根据工作负载资源使用情况,动态调整工作负载实例数。 设置工作负载容器配置。 Pod中可以配置多个容器,您可以单击右侧“添加容器”为Pod配置多个容器并分别进行设置。 图1 容器配置 基本信息: 表1 基本信息参数说明 参数 说明 容器名称 为容器命名。 镜像名称 单击后方“选择镜像”,选择容器使用的镜像。 我的镜像:当前区域下华为云镜像仓库中的镜像。若无可用的镜像,可单击“上传镜像”进行上传。 镜像中心:开源镜像仓库中的官方镜像。 共享镜像:由他人账号共享的私有镜像,详情请参见共享私有镜像。 镜像版本 选择需要部署的镜像版本。 更新策略 镜像更新/拉取策略。勾选“总是拉取镜像”表示每次都从镜像仓库拉取镜像;如不勾选则优先使用节点已有的镜像,如果没有这个镜像再从镜像仓库拉取。 CPU配额 申请:容器需要使用的最小CPU值,默认0.25Core。 限制:允许容器使用的CPU最大值。建议设容器配额的最高限额,避免容器资源超额导致系统故障。 内存配额 申请:容器需要使用的内存最小值,默认512MiB。 限制:允许容器使用的内存最大值。如果超过,容器会被终止。 关于CPU/内存配额申请和限制的具体说明请参见设置容器规格。 初始化容器 选择容器是否作为初始化容器。 Init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。详细说明请参见Init 容器。 生命周期:设置生命周期回调函数可在容器的特定阶段执行调用,比如容器在停止前希望执行某项操作,就可以设置相应的函数。目前提供的生命周期回调函数有启动命令、启动后处理、停止前处理,详情请参见设置容器生命周期。 健康检查:设置健康检查可以在容器运行过程中定时检查容器的健康状况,详情请参见设置容器健康检查。 环境变量:容器运行环境中设定的一个变量,通过环境变量设置的配置项不会随着Pod生命周期结束而变化,详情请参见设置环境变量。 数据存储:配置容器存储,可以使用本地存储和存储卷声明(PVC)。建议使用PVC将工作负载Pod数据存储在云存储上。若存储在本地磁盘上,节点异常无法恢复时,本地磁盘中的数据也将无法恢复。容器存储相关内容请参见容器存储。 安全设置:对容器权限进行设置,保护系统和其他容器不受其影响。请输入用户ID,容器将以当前用户权限运行。 镜像访问凭证:用于访问镜像仓库的凭证。该凭证仅访问私有镜像仓库时使用,如所选镜像为公开镜像,则无需选择密钥。密钥的创建方法请参见创建密钥。 设置工作负载实例间发现服务配置。 StatefulSet实例间发现通过无头服务(Headless Service)实现,无头服务并不会分配 Cluster IP,并且查询会返回所有Pod的DNS记录,这样就可查询到所有Pod的IP地址。 Service名称:输入工作负载所对应的服务名称,用于集群内工作负载间的互相访问。该服务主要用于实例的内部发现,不需要有单独的IP地址,也不需要做负载均衡。 端口配置: 端口名称:端口名称用于给容器端口命名,通常以端口用途命名。 服务端口:输入服务端口。 容器端口:输入容器的监听端口。 (可选)单击服务配置栏的,进行工作负载服务配置。 若工作负载需要和其它服务互访,或需要被公网访问,您需要添加服务(Service),设置访问方式。工作负载访问的方式决定了这个工作负载的网络属性,不同访问方式的工作负载可以提供不同网络能力,操作详情请参见服务与路由。 您也可以在创建完工作负载之后再创建Service,参见集群内访问(ClusterIP)和节点访问(NodePort)。 Service名称:新增服务名称,用户可自定义,服务名称必须唯一。 访问类型: 集群内访问(ClusterIP):只能集群内访问服务。 节点访问(NodePort):可以通过集群内任意节点访问到服务。 服务亲和(仅节点访问设置): 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。 端口配置: 协议:TCP或UDP,请根据业务的协议类型选择。 服务端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问应用时使用,端口范围为1-65535,可任意指定。 容器端口:容器镜像中应用程序实际监听的端口,需用户确定。例如:nginx程序实际监听的端口为80。 节点端口(仅节点访问设置):容器端口映射到节点私有IP上的端口,用私有IP访问应用时使用,端口范围为30000-32767,建议选择“自动生成”。 自动生成:系统会自动分配端口号。 指定端口:指定固定的节点端口,默认取值范围为30000-32767。若指定端口时,请确保同个集群内的端口唯一性。 (可选)单击“展开高级配置”,设置工作负载高级配置。 升级策略:指定有状态负载的升级方式,包括整体替换升级和逐步滚动升级,详细参数说明请参见配置工作负载升级策略。 滚动升级:滚动升级将逐步用新版本的实例替换旧版本的实例,升级的过程中,业务流量会同时负载均衡分布到新的和旧的实例上,因此业务不会中断。 替换升级:有状态工作负载的替换升级,需要手动删除旧实例,再创建新实例。升级过程中业务会中断。 实例管理策略: 有序策略:默认实例管理策略,有状态负载会逐个的、按顺序的进行部署、删除、伸缩实例, 只有前一个实例部署Ready或者删除完成后,有状态负载才会操作后一个实例。 并行策略:支持有状态负载并行创建或者删除所有的实例,有状态负载发生变更时立刻在实例上生效。 调度策略:您可设置亲和(affinity)与反亲和(anti-affinity)实现Pod的计划性调度,详细信息请参见配置调度策略(亲和与反亲和)。 标签与注解:您可以单击“添加”为Pod增加标签或注解,新增标签或注解的键不能与已有的重复。 单击“下一步”,对选择的集群进行调度与差异化配置。在选择可调度集群后,可对容器进行“差异化配置”。 集群调度策略: 调度方式: 复制分发:工作负载将在勾选的所有集群中进行部署。 部署集群:单击集群即可将其勾选为工作负载可调度的集群,集群个数请您根据自身业务进行确定。 差异化配置: 工作负载在不同的集群中部署可进行差异化的配置。在选择可调度集群后单击对应集群右上角,即可对每个集群进行差异化配置,差异化后的容器配置只对该集群生效。 具体参数说明请参见容器配置。 设置完成后,单击“创建工作负载”完成创建。
  • 接入集群 登录UCS控制台,在“等待接入”状态下的目标集群栏中单击“单击接入”,选择“私网接入”。 选择项目,再选择购买终端节点中创建的终端节点。 下载集群代理agent的配置文件。 集群代理配置存在私有秘钥信息,每个集群代理配置仅能下载一次,请您妥善保管。 将步骤3中的agent配置文件上传至节点。 单击“安装集群代理agent配置”,在待接入集群中执行如下命令,可单击右侧直接复制命令。 图4 安装集群代理agent配置 私网接入的集群无法通过私网下载SWR镜像仓库中的镜像,请确保工作负载运行的节点可访问公网。 拉取proxy-agent容器镜像要求集群需要具备公网访问能力,或将proxy-agent镜像上传至集群可访问的镜像仓库,否则将导致proxy-agent部署失败。 前往UCS控制台刷新集群状态,集群处于“运行中”。
  • 约束与限制 仅华为云账号或具备UCS FullAccess权限的用户可进行集群注册的操作。 若集群地域位于境外,应确保您的行为符合所适用的法律法规要求。 请确保注册的集群为伙伴云(如天翼云、移动云)CCE集群,且版本在1.19至1.28之间的集群。 伙伴云集群通过私网接入时,由于网络限制,镜像仓库功能的使用可能受限: 私网接入的集群无法通过私网下载SWR镜像仓库中的镜像,请确保工作负载运行的节点可访问公网。
  • 购买终端节点 登录VPC终端节点控制台,单击“购买终端节点”。 选择终端节点的区域。 选择“按名称查找服务”,输入服务名称“cn-north-4.open-vpcep-svc.29696ab0-1486-4f70-ab35-a3f6b1b37c02”,并单击“验证”。 图3 购买终端节点 选择准备网络环境中与集群网络连通的虚拟私有云以及对应的子网。 根据需求选择终端节点的“节点IP”为“自动分配”或“手动分配”。 配置完其他参数后,单击“立即购买”,并进行规格确认。 规格确认无误,单击“提交”,任务提交成功。 参数信息配置有误,需要修改,单击“上一步”,修改参数,然后单击“提交”。
  • 前提条件 已创建一个准备接入UCS的集群,并且集群状态正常。 在UCS提供服务的区域中创建一个VPC,具体操作请参见创建虚拟私有云和子网,当前仅支持“华北-北京四”区域。 该VPC子网网段不能与IDC或第三方云中已使用的网络网段重叠,否则将无法接入集群。例如,IDC中已使用的VPC子网为192.168.1.0/24,那么华为云VPC中不能使用192.168.1.0/24这个子网。 已获取待添加集群的KubeConfig文件,具体操作步骤因厂商而异,请参见KubeConfig。关于KubeConfig文件的更多说明请参考使用kubeconfig文件组织集群访问。
  • 注册集群 登录UCS控制台。 在左侧导航栏中选择“容器舰队”,单击附着集群选项卡中的“注册集群”按钮。 参考表1填写待添加集群的基础信息,其中带“*”的参数为必填参数。 表1 注册集群基础信息配置 参数 参数说明 集群名称* 输入集群的自定义名称,需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 集群服务商* 选择一个集群服务商。 所属区域* 选择集群所在的区域。 集群标签 非必填项,以键值对的形式为集群添加标签,可以通过标签实现集群的分类。键值对可自定义,以字母或者数字开头和结尾,由字母、数字、连接符(-)、下划线(_)、点号(.)组成,且63个字符之内。 上传KubeConfig* 上传kubectl的配置文件来完成集群认证,支持JSON或YAML格式。获取KubeConfig文件的操作步骤因厂商而异,请参见KubeConfig。 选择Context* 选择对应的Context。在完成KubeConfig文件上传后,选项列表将自动获取文件中的“contexts”字段。 默认值为KubeConfig文件中“current-context”字段指定的Context,若文件中无此字段则需要从列表中手动选择。 容器舰队 选择集群所属的舰队。 舰队用于权限精细化管理,一个集群只能加入一个舰队。若不选择舰队,集群注册成功后将显示在“未加入舰队的集群”页签下,后续还可以再添加至舰队中。 不支持在注册集群阶段选择已开通集群联邦能力的舰队,如果一定要加入这个舰队,请在集群注册成功后,再添加到该舰队中。关于集群联邦的介绍,请参见开通集群联邦章节。 如需新建舰队,请参见管理容器舰队。 单击“确定”,集群注册成功后如图2所示,请在30分钟内接入网络。您可选择集群的接入方式或单击右上角按钮查看详细的网络接入流程。 如您未在30分钟内接入网络,将会导致集群注册失败,可单击右上角按钮重新注册集群。如果已经接入但数据未采集上来,请等待2分钟后刷新集群。 图2 集群等待接入状态
  • 配置DNS服务器 配置DNS转发:在DNS服务器配置相应的DNS转发规则,将解析华为云内网域名的请求转发到DNS终端节点。以常见的DNS软件Bind为例:例如/etc/named.conf内,增加DNS转发器的配置,forwarders为DNS终端节点IP地址。 下示代码中xx.xx.xx.xx是DNS的终端节点IP。 options { forward only; forwarders{ xx.xx.xx.xx;}; }; 增加静态DNS配置解析:增加DNS静态配置,SWR与CIE实例地址。如使用dnsmasq为例,在/etc/dnsmasq.conf中添加以下两个静态解析: 第一个静态解析如下,下示代码中xx.xx.xx.xx是SWR的终端节点IP。 address=/swr.cn-north-4.myhuaweicloud.com/xx.xx.xx.xx 第二个静态解析如下,下示代码中xx.xx.xx.xx是域名对应的IP地址,在开启集群监控后生成。 address=/cia-{当前选择接入的VPCID前八位}{当前选择接入的VPC子网ID前八位}.cn-north-4.myhuaweicloud.com/xx.xx.xx.xx 示例:address=/cia-9992be3cf3eace24.cn-north-4.myhuaweicloud.com/ 172.16.0.81 生成域名。 SWR:address=/swr.cn-north-4.myhuaweicloud.com/{SWR VPC-EP} CIA:域名的获取:如当前选择接入的VPC和子网如下(如下截图vpc-cce仅是示例,实际VPC以UCS服务所在的VPC为准) 图3 VPC的ID前8位 图4 子网的ID前8位 最终域名拼接后是:cia-e52a5d7e02a86357.cn-north-4.myhuaweicloud.com
  • 购买终端节点(VPCEP) 登录UCS控制台,单击待接入集群栏的“点击接入”进入集群接入界面,单击“私网接入”。 查看“创建终端节点”中的服务名称,单击,记录服务名称。 图1 创建终端节点 登录VPC终端节点控制台,单击“购买终端节点”,创建连接不同服务的终端节点。 选择终端节点的区域,单击“按名称查找服务”,输入2中所记录的服务名称,并单击“验证”,创建UCS的终端节点。 图2 按名称查找服务 创建DNS、SWR、OBS的终端节点。 选择部署网络环境中创建的虚拟私有云以及对应的子网。 “节点IP”选择“自动分配”或“手动分配”均可。 单击“立即购买”,规格确认无误后,单击“提交”。 将创建的终端节点配置到所使用的DNS服务器中。单击创建出的VPCEP节点名称,记录“节点IP”,以便在IDC的DNS Server中增加华为云的DNS转发器。
  • 部署网络环境 在UCS提供服务的区域中创建一个VPC,该VPC将用于后续安装终端节点,需保证该VPC与用户自有IDC网络环境打通。 VPC创建操作请参见创建虚拟私有云和子网,当前仅支持“华北-北京四”区域。 该VPC子网网段不能与IDC中已使用的网络网段重叠,否则将无法接入集群。例如,IDC中已使用的VPC子网为192.168.1.0/24,那么华为云VPC中不能使用192.168.1.0/24这个子网。
  • 开启本地集群控制面审计日志 集群未安装云原生日志采集插件 安装云原生日志采集插件时,可通过勾选控制面审计日志,创建默认日志采集策略,采集对应组件日志上报到LTS。安装方法见:启用云原生日志采集插件采集日志。 集群已安装云原生日志采集插件 登录容器舰队控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 右上角单击“日志采集策略”,将显示当前集群所有上报LTS的日志策略。 单击上方“创建日志策略”,输入要采集的配置信息。 策略模板:若安装插件时未开启控制面审计日志的采集策略,或者删除了对应的日志策略,可通过该方式重新创建控制面审计日志采集策略。 日志查看:可直接在“日志中心”页面,“控制面审计日志”页签中查看,选择日志策略配置的日志流名称,即可查看上报到云日志服务(LTS)的日志。
  • 创建权限 登录UCS控制台,在左侧导航栏中选择“权限管理”。 单击右上角的“创建权限”按钮。 在弹出页面中填写权限参数。 图2 创建权限 权限名称:自定义权限的名称,需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 用户:在下拉列表中勾选新创建的用户名。支持选择多个用户,假设一个企业中的开发团队有多名员工,他们对资源的操作权限一样,就可以在创建权限时选择多个用户以达到批量授权的目的。 本文以添加一个“readonly_user”用户为例。 权限类型:支持管理员权限、只读权限、开发权限和自定义权限。 表1 权限类型说明 权限类型 说明 管理员权限 对所有集群资源对象的读写权限 只读权限 对所有集群资源对象的只读权限 开发权限 对大多数集群资源对象的读写权限,对命名空间、资源配额等集群资源对象的只读权限 自定义权限 权限由您选择的操作类型和资源对象决定 权限内容:表示对哪些资源可以执行哪些操作。管理员权限、只读权限、开发权限的权限内容已经模板化,您可以单击按钮查看权限的详细内容。当权限类型选择“自定义权限”时,需要设置操作类型和资源对象。 操作类型:包含如下类型,也支持新增操作类型(如deletecollection,表示删除多个资源)。 get:按名称检索特定的资源对象。 list:检索命名空间中特定类型的所有资源对象。 watch:响应资源变化。 create:创建资源。 update:更新资源。 patch:局部更新资源。 delete:删除资源。 对于全部操作推荐选择:全部。 对于只读操作推荐选择:get + list + watch。 对于读写操作推荐选择:get + list + watch + create + update + patch + delete。 资源对象:您可以选择“全部资源”或“指定资源”。全部资源对象包括当前已有的资源对象和后续新增的自定义资源对象;“指定资源”即表示您自己选择资源对象的范围,为了便于查找,UCS服务将资源对象按照工作负载、服务、配置和存储、身份验证、授权、权限、扩展、集群维度划分。 若系统资源中没有您需要的资源对象,也可以新增自定义资源对象。 如果针对不同资源对象,操作类型不同(例如:对deployments具有create、delete操作权限,对secrets具有get、list、watch操作权限),可以单击按钮添加多组内容。 若您想了解更多资源对象和操作类型的知识,请参阅Kubernetes API。 描述:添加权限的描述信息。 单击“确定”。权限创建完成后,需要继续关联舰队或未加入舰队的集群,才可正常操作Kubernetes资源。
  • 关联权限至舰队或未加入舰队的集群 舰队是多个集群的集合,舰队可以实现多集群的权限统一管理。因此建议您将集群加入舰队后,为舰队关联权限,这样舰队中的集群将具有相同的权限。 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在目标舰队栏中,单击右上角的按钮。 图3 为舰队关联权限 在弹出的页面单击“修改容器舰队权限”或“关联权限”,打开修改权限页面,将已创建好的权限和舰队的命名空间关联起来。 图4 修改权限 命名空间:支持“全部命名空间”和“指定命名空间”。全部命名空间包括当前舰队已有的命名空间和舰队后续新增的命名空间;“指定命名空间”即表示您自己选择命名空间的范围,UCS服务提供了几个常见的命名空间供您选择(如default、kube-system、kube-public),您也可以新增命名空间,但要自行确保新增的命名空间在集群中存在。 请注意,选择的命名空间仅对权限中命名空间级资源生效,不影响权限中的集群资源。关于命名空间级和集群级资源的介绍,请参见Kubernetes资源对象章节。 关联权限:从下拉列表中选择权限,支持一次性选择多个权限,以达到批量授权的目的。 本示例中,选择“default”命名空间,选择“readonly”权限。 如果针对不同命名空间,关联的权限不同(例如:为default命名空间关联readonly权限,为development命名空间关联develop权限),可以单击按钮添加多组授权关系。 单击“确定”,完成权限的关联。 如果后续需要修改舰队的权限,采用同样的方法,重新选择命名空间和权限即可。
  • 授权流程 图1 给用户授予Kubernetes资源权限流程 创建用户。 管理员账号在IAM控制台创建一个用户。 为用户授予UCS系统策略。 授予Kubernetes资源权限之前,必须先为用户授予UCS系统策略的权限,本例中应该授予UCS ReadOnlyAccess策略(UCS服务只读权限)。 创建权限。 管理员账号在UCS控制台创建权限,选择“只读权限”的权限类型,表示对所有Kubernetes资源对象的只读权限。 关联权限至舰队或未加入舰队的集群。 将权限关联至舰队,关联时需要选择权限作用的命名空间。也可以关联权限至未加入舰队的集群。 验证权限是否生效。 新创建的用户登录控制台,验证只读权限是否生效。
共100000条