云服务器内容精选

  • 分发实例 登录U CS 控制台,在左侧导航栏中选择“云原生服务中心”,单击“我的订阅”页签。 将鼠标移动至CockroachDB服务选项卡,并单击“创建实例”,如图2所示。 图2 创建实例 根据界面引导,选择实例的部署场景、区域、容器集群、命名空间等参数,如图3所示。 图3 配置基本信息 单击“下一步:实例参数”,填写实例基本参数。在本示例中,CockroachDB服务仅支持Yaml创建方式,参数配置保持默认。 图4 配置实例参数 单击“下一步:信息确认”,仔细查阅页面下方提示信息并勾选“我已知晓”,单击“提交”,等待实例创建成功。 实例创建成功后,在“服务实例”页面可以查看CockroachDB服务实例的信息。 图5 服务实例
  • 创建无状态工作负载 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在“容器舰队”页签下找到已开通集群联邦的舰队,单击名称进入详情页。 在左侧导航栏中选择“工作负载”,在“无状态负载”页签中单击右上角“镜像创建”。 设置工作负载基本信息。 表1 工作负载基本信息设置 参数 描述 负载类型 选择“无状态负载”。 命名空间 选择工作负载所需部署的命名空间。 描述 输入工作负载的描述信息。 实例数量 设置工作负载中各集群的实例数,默认为2。 设置工作负载容器配置。 工作负载中的Pod内可配置多个容器,您可以单击右侧“添加容器”为Pod配置多个容器并分别进行设置,本例中仅对容器的基本信息进行配置。 基本信息: 表2 基本信息参数说明 参数 说明 容器名称 为容器命名。 镜像名称 单击后方“选择镜像”,选择容器使用的镜像。 镜像版本 选择需要部署的镜像版本。 更新策略 镜像更新/拉取策略。勾选“总是拉取镜像”表示每次都从镜像仓库拉取镜像;如不勾选则优先使用节点已有的镜像,如果没有这个镜像再从镜像仓库拉取。 CPU配额 申请:容器需要使用的最小CPU值,默认0.25Core。 限制:允许容器使用的CPU最大值。建议设容器配额的最高限额,避免容器资源超额导致系统故障。 内存配额 申请:容器需要使用的内存最小值,默认512MiB。 限制:允许容器使用的内存最大值。如果超过,容器会被终止。 初始化容器 选择容器是否作为Init容器。 说明: Init容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。详细说明请参见Init 容器。 单击“下一步:调度与差异化”,对选择的集群进行调度与差异化配置。 表3 集群调度策略参数配置 参数 描述 调度方式 可选择集群权重或自动均衡两种模式。 集群权重:手动设置各集群的权重,工作负载在各集群的实例数将根据设置的权重比例进行分配。 自动均衡:工作负载将根据资源余量在可调度的集群中自动选择集群进行部署。 部署集群 “集群权重”模式下,需手动设置各集群权重值,权重非0的集群将自动勾选为可调度集群,权重为0则表示该集群不可调度。状态非正常的集群无法设置权重。 “自动均衡”模式下,单击集群即可将其勾选为可调度集群。 设置完成后,单击“创建工作负载”,完成创建后,可单击“返回工作负载列表”查看所创建的工作负载。
  • 操作步骤 假设目前业务部署在多个地区,全国用户默认访问“华北-北京四”区域的业务,而华东地区用户需要访问部署在“华东-上海一”区域的业务,以降低用户的使用时延。此时可通过创建流量策略来为已有应用进行基于地域的流量切分。 登录UCS控制台。 在左侧树状导航栏,选择“流量分发”。 单击页面右上角“创建流量策略”按钮。 根据页面提示,选择已添加解析的 域名 ,并填写域名前缀。如果没有子域名,域名前缀可不填。 添加调度策略,本例中仅填写关键参数,其余参数保持默认,如表1所示。对不同地域的用户创建流量策略,可重复此步骤,并选择不同的集群和线路类型。 表1 调度策略关键参数 参数 参数说明 集群 选择一个状态为“运行中”的目标集群,列表中将自动获取UCS接管的所有集群。 命名空间 选择目标服务所在的命名空间,默认为“default”。 服务 选择一个目标服务,仅支持访问类型为负载均衡的服务,查询结果已过滤。 线路类型 运营商线路解析:根据访问用户所在运营商网络调度到最佳访问地址。默认值为“电信/地区默认”,支持指定运营商及地区,其中地区选择的细粒度为省级。 地域解析:根据访问用户所处地理位置调度到最佳访问地址。默认值为“中国大陆/地区默认”,支持全球地域选择,其中中国大陆地区细粒度为省级,其余地域细粒度为国家/地区。 图1 添加调度策略 单击“确定”,待流量调度策略创建成功后,华东地区的用户将优先访问选定线路。 检验新增调度策略是否生效,参考怎样测试域名解析是否生效?。 您可以在华东地区使用已经连接Internet的终端,输入如下命令测试调度策略是否生效: nslookup demo.***.com 如果终端的操作系统没有自带nslookup命令,需要手动安装后才能使用。例如CentOS系统,可执行yum install bind-utils安装。 回显如下,如其中“Address”的IP地址为目标集群负载均衡IP,则表示调度策略创建成功。 Server: *** Address: *.*.*.* Non-authoritative answer: Name: demo.***.com Address: 124.*.*.*
  • 后续步骤 将集群添加至容器舰队后,即可对其进行统一管理。 UCS支持对容器舰队内的多个集群实行统一管理,包括为其开启集群联邦能力以创建和管理多集群工作负载、统一治理多集群流量、为多集群配置统一合规策略等能力。 本小节将以四种最常用的UCS功能为例,指导您快速上手UCS的多集群管理能力,请根据业务需求选择您需要参考的入门指导: 在多集群上部署并管理工作负载,具体入门操作请参见创建多集群工作负载。 为多集群统一下发实例,具体入门操作请参见统一下发多集群实例。 统一治理多集群流量,具体入门操作请参见统一治理多集群流量。 实现多集群智能、可视化运维,具体入门操作请参见开启多集群健康监控。
  • 获取KubeConfig文件 登录待添加集群的Master节点。 获取待添加集群的KubeConfig文件。 cat $HOME/.kube/config 默认情况下,自建集群的配置文件路径为Master节点的“$HOME/.kube/config”,如您的集群指定了其他KubeConfig配置文件,请自行更换路径。关于KubeConfig文件的详细说明请参见使用KubeConfig文件组织集群访问。 复制KubeConfig文件内容。 在本地创建一个YAML文件,将上一步中的复制内容粘贴至该文件并保存。
  • 注册集群 登录UCS控制台。 在左侧导航栏选择“容器舰队”,单击附着集群选项卡中的“注册集群”按钮。 配置集群参数。本例中仅填写关键参数,如表1所示。 表1 添加集群参数配置 参数 是否必需 参数说明 集群名称 是 输入集群的自定义名称。名称需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 集群服务商 是 选择集群的服务商。 所属区域 是 选择集群所在区域。 上传KubeConfig文件 是 上传获取KubeConfig文件中保存的KubeConfig文件,以完成集群认证。支持JSON或YAML格式。 选择Context 是 选择对应的Context。 Context选项列表会在上传KubeConfig文件后自动获取,默认的选项为KubeConfig文件中“current-context”字段指定的Context。 容器舰队 否 选择步骤二:创建容器舰队创建的舰队。 图1 注册集群 单击“确定”。
  • 获取资源权限 由于UCS服务的容器集群功能支持CCE集群,因此需要获取访问云容器引擎CCE服务的权限。在您首次登录UCS控制台时,UCS将自动请求获取该权限,从而更好地为您提供服务。 当您同意授权后,UCS将在 IAM 中创建名为ucs_admin_trust的委托,统一使用系统帐户“op_svc_ucs”对您的CCE及其他云服务资源进行操作,并且授予其Tenant Administrator权限。Tenant Administrator拥有除IAM管理外的全部云服务管理员权限,用于对UCS所依赖的其他云服务资源进行调用。关于资源委托详情,您可参考委托进行了解。 由于UCS对其他云服务有许多依赖,如果没有Tenant Administrator权限,可能会因为某个服务权限不足而影响UCS功能的正常使用。因此在使用UCS服务期间,请不要自行删除或者修改“ucs_admin_trust”委托。 如果误操作,可以参考误删除或修改系统创建的ucs_admin_trust委托,怎么恢复?进行恢复。
  • 使用步骤 UCS最基础的入门操作包括创建容器舰队、添加集群、管理多集群生命周期,通过这三个步骤即可实现在跨云跨地域的多集群场景下轻松部署、管理和扩展容器化应用程序。 图1为UCS的入门使用流程,实际上针对不同集群类型和不同管理目的,在使用方式上有细微的差异,具体差异请参考对应使用方式的指导文档,本入门指导旨在帮助您对UCS产品入门操作进行初步认识。 图1 UCS入门流程 进行必要的准备工作,请参见步骤一:准备工作。 创建容器舰队,请参见步骤二:创建容器舰队。 为容器舰队添加集群,请参见步骤三:为容器舰队添加集群。 管理多集群生命周期,请参见步骤四:管理多集群生命周期。
  • 创建类别为负载均衡的MCS对象 使用kubectl连接集群联邦,详细操作请参见使用kubectl连接集群联邦。 创建并编辑 mcs.yaml 文件,文件内容定义如下所示,参数定义请参见表1。 示例YAML定义的MCS对象关联了名为nginx的Service,将nginx的Service注册到华为云ELB的监听器上。 vi mcs.yaml apiVersion: networking.karmada.io/v1alpha1 kind: MultiClusterService metadata: name: nginx namespace: default annotations: karmada.io/elb.id: 2050857a-45ff-4312-8fdb-4a4e2052e7dc karmada.io/elb.projectid: c6629a1623df4596a4e05bb6f0a2e166 karmada.io/elb.port: "802" karmada.io/elb.health-check-flag: "on" spec: ports: - port: 80 types: - LoadBalancer consumerClusters: - name: clusterA 表1 关键参数说明 参数 是否必填 参数类型 描述 metadata.name 是 String MCS对象的名称,应与关联Service保持一致。 metadata.namespace 否 String MCS对象所在命名空间名称,应与关联Service所在命名空间名称保持一致。不填则默认为default。 spec.types 是 String 数组 流量方向。 实现集群间服务发现能力应配置为CrossCluster; 将服务通过ELB对外暴露应配置为LoadBalancer。 spec.ports.port 否 Integer 关联的Service需要注册到ELB监听器上的服务端口。 spec.consumerClusters.name 否 String Service的访问集群名称,应配置为期望通过MCS实现跨集群访问Service的集群名称。不填则默认设置为所有集群联邦内集群可访问该Service。 karmada.io/elb.id 是 String MCS关联的elb的id,不允许为空。 取值范围:1-32个字符。 karmada.io/elb.projectid 是 String MCS关联的elb所属的项目ID,获取方法请参见获取项目ID。 取值范围:1-32个字符。 karmada.io/elb.port 否 String MCS关联的elb的端口,不填时默认为80。 取值范围:1-65535。 karmada.io/elb.health-check-flag 否 String 是否启用健康检查,可选值为: on:开启 off:不开启 不填写时默认为off。 karmada.io/elb.health-check-option 否 HealthCheck Object 健康检查参数,详情请参见HealthCheck。 说明: 健康检查参数配置示例: karmada.io/elb.health-check-option: '{"protocol":"TCP","delay":"5","connect_port":"80","timeout":"1","max_retries":"1","path":"/wd"}' 在annotation开启健康检查配置的情况下,Service名称的长度不应超过39个字符。 karmada.io/elb.lb-algorithm 否 String 转发算法: ROUND_ROBIN:加权轮询算法。 LEAST_CONNECTIONS:加权最少连接算法。 SOURCE_IP:源IP算法。 不填写时默认为ROUND_ROBIN。 表2 HealthCheck参数说明 参数 是否必填 参数类型 描述 protocol 否 String 健康检查使用的协议。支持TCP/HTTP,默认值是TCP。 connect_port 否 Int 健康检查使用的端口。取值范围[1,65535],为可选参数。 说明: 默认使用后端服务器默认业务端口进行健康检查。指定特定端口后,使用指定的端口进行健康检查。 delay 否 Int 健康检查的延迟时间,以秒为单位,1-50,默认值是5秒。 timeout 否 Int 健康检查的超时时间,以秒为单位,1-50,默认值是10秒。 path 否 String 健康检查的请求URL,当protocol为HTTP时生效。 以"/"开头,默认为"/"。支持使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)以及扩展字符集。长度为1-80个字符。 max_retries 否 Int 最大重试次数,取值范围1-10,默认值是3次。 执行如下命令创建MCS对象。 kubectl apply -f mcs.yaml 创建完成后,可以执行如下命令操作MCS对象。其中nginx为MCS对象的名称。 获取MCS对象:kubectl get mcs nginx 更新MCS对象:kubectl edit mcs nginx 删除MCS对象:kubectl delete mcs nginx
  • 准备工作 如您没有可用的ELB实例,需要先创建ELB实例,具体请参考创建独享型负载均衡器。该ELB实例需要满足以下条件: ELB为独享型。 ELB必须支持网络型(TCP/UDP)。 ELB网络类型必须支持私网(有私有IP地址)。 如果ELB与成员集群的网络不在同一VPC内,ELB需要支持开启跨VPC访问的开关。 MCS为跨集群后端工作负载提供统一入口和四层网络访问,因此需要在联邦中提前部署可用的工作负载(Deployment)和服务(Service)。若您无可用工作负载和服务,请参考无状态负载和集群内访问(ClusterIP)创建。 设置集群为underlay网络,支持underlay网络的集群类型请参见设置集群网络。
  • 验证GPU虚拟化隔离能力 工作负载创建成功后,您可以尝试验证GPU虚拟化的隔离能力。 登录容器查看容器被分配显存总量 kubectl exec -it gpu-app -- nvidia-smi 预期输出: Wed Apr 12 07:54:59 2023 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 470.141.03 Driver Version: 470.141.03 CUDA Version: 11.4 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 Tesla V100-SXM2... Off | 00000000:21:01.0 Off | 0 | | N/A 27C P0 37W / 300W | 4792MiB / 5000MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| +-----------------------------------------------------------------------------+ 预期输出表明,该容器被分配显存总量为5000 MiB,实际使用了4792MiB。 查看所在节点的GPU显存隔离情况(在节点上执行)。 export PATH=$PATH:/usr/local/nvidia/bin;nvidia-smi 预期输出: Wed Apr 12 09:31:10 2023 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 470.141.03 Driver Version: 470.141.03 CUDA Version: 11.4 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 Tesla V100-SXM2... Off | 00000000:21:01.0 Off | 0 | | N/A 27C P0 37W / 300W | 4837MiB / 16160MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 760445 C python 4835MiB | +-----------------------------------------------------------------------------+ 预期输出表明,GPU节点上的显存总量为16160 MiB,其中示例Pod使用了4837MiB。
  • 约束与限制 init容器不支持进行GPU虚拟化。 对于单张GPU卡: 最多虚拟化为20个GPU虚拟设备。 最多调度20个使用隔离能力的Pod。 仅支持调度相同隔离模式(GPU虚拟化支持显存隔离、显存与算力隔离两种隔离模式。)的工作负载。 对于同一工作负载中的不同容器: 仅支持配置单一显卡型号,不支持混合配置两种及以上GPU显卡型号。 仅支持配置一致GPU使用模式,不支持混合配置虚拟化和非虚拟化模式。 使用GPU虚拟化后,该GPU节点不再支持调度使用共享GPU资源的工作负载。
  • 查看集群内节点详情 在节点列表中,单击需要查看详情的节点名称,进入该节点的详情页面,通过切换“概览”、“Pod列表”和“监控”页签查看相应内容。 表1 节点详情页面 词条 词条描述 概览 单击节点名称,可以进入节点概览页。在这里,您可以方便地查看: 资源健康概况:包括节点状态、Pod数量以及异常事件。 节点监控:包括近1小时、近8小时、近24小时以及自定义时间段内的监控概览,其中包括CPU使用率、内存使用率和网络流入/流出速率这些常见的监控指标。 Pod使用趋势:包括近1小时、近8小时、近24小时以及自定义时间段内CPU使用量、内存使用量Top5的Pod信息。 容器列表 Pod列表中包含了实例名称、状态、命名空间、实例IP、所在节点、重启次数、CPU申请/限制、内存申请/限制,以及CPU和内存使用率等详细信息。 您可以通过在列表上方按照实例名称、状态、命名空间、实例IP和所在节点进行筛选,快速找到需要的实例。 在列表的右上角,您可以单击按钮来导出全部实例数据,或者选择部分实例进行导出,此时仅导出所选中的数据。导出的文件为“.xlsx”格式,文件命名中包含时间戳。 单击实例名称可以查看实例的详细监控数据。更多相关内容,请参见查看集群内Pod情况。 监控 在此处,您可以方便地查看节点在近1小时、近8小时、近24小时以及自定义时间段内各维度资源的使用情况。 如需查看更多监控信息,请单击“查看全部仪表盘”,跳转至“仪表盘”页面,相应指导请参见仪表盘。
  • 查看集群内节点列表 节点列表中包含节点名称、状态、IP地址、Pod(已分配/总额度)、CPU申请比率/限制比率/使用率,以及内存申请比率/限制比率/使用率等信息。 图1 节点列表页面 您可以通过在列表上方按照节点名称、状态、私有地址和公网地址进行筛选,快速找到需要的节点。在列表的右上角,您可以单击按钮来导出全部节点数据,或者选择部分节点进行导出,此时仅导出所选中的数据。导出的文件为“.xlsx”格式,文件命名中包含时间戳。 节点概况展示了节点的名称、当前运行状态、CPU/内存的使用率、所属集群、节点IP地址以及节点所在地区,且单击上方搜索框,选择属性类型,再输入对应的关键字,即可查询该条件下的节点。 当节点的CPU限制比率或内存限制比率超过100%时,意味着节点资源超分,节点上的负载限制值(可使用的最大值)之和已经超过了节点规格。如果负载占用资源过高,可能会导致节点异常。
  • 查看/切换视图 选择一个容器舰队或者未加入舰队的集群。 图1 选择舰队或未加入舰队的集群 选择“仪表盘”页签,默认展示集群视图。 设置查看视图的相关参数。各个视图可供设置的参数不同,请参见表1。 设置视图的时间窗。 在页面右上角处,选择时间段,或者自定义时间,并单击刷新界面。 容器智能分析仪表盘提供了预置视图,您可单击视图名称边上的“切换视图”按钮,选择需要的视图查看监控数据。系统预置视图如表1所示。 表1 预置视图 视图名称 视图参数 视图中包含的监控指标 集群视图(默认视图) 集群 节点数/磁盘不可用节点数/不可用节点数 CPU/内存使用率 CPU/内存Requests水位 CPU/内存Limits水位 Pod/容器数 CPU/内存使用量 网络接收/发送速率 网络平均接收/发送速率 接收/发送数据包速率 丢包率(接收/发送) 磁盘IOPS(读+写) ThroughPut(读+写) APIServer视图 集群 实例 存活数 QPS 请求成功率(读) 处理中请求数 请求速率(读/写) 请求错误率(读/写) 请求时延(读/写)(99分位时延) 工作队列增加速率/深度 工作队列时延(99分位时延) 内存/CPU使用量 Go routine数 Pod视图 集群 命名空间 pod 容器数/运行中容器数 Pod状态 容器重启次数 CPU/内存使用量 CPU Throttling 网络接收/发送速率 接收/发送数据包速率 丢包率(接收/发送) 磁盘IOPS(读+写) ThroughPut(读+写) 文件系统使用率/使用量 主机视图 集群 节点 CPU/内存使用率 平均负载 内存使用量 磁盘写入/读取速率 磁盘空间使用 磁盘IO Node视图 集群 节点 CPU/内存使用率 CPU/内存Requests水位 CPU/内存Limits水位 内存使用量 网络接收/发送速率 接收/发送数据包速率(Pod) 接收/发送数据包速率 丢包率(接收/发送) 磁盘IOPS(读+写) ThroughPut(读+写) CoreDNS视图 集群 实例 请求速率(记录类型/区域/DO标志位) 请求数据包(UDP/TCP) 响应速率(响应状态码) 响应时延 响应数据包(UDP/TCP) 缓存大小 缓存命中率 PVC视图 集群 命名空间 PV PVC PV/PVC状态 PVC使用量/使用率 PVC inodes使用量/使用率 PVC每小时/每天/每周使用率 一周后PVC使用量 Kubelet 集群 实例 运行中Kubelet/Pod/容器 实际卷/期望卷/配置错误数量 操作速率/错误率/时延 Pod启动速率/时延(99分位) 存储操作速率/错误率/时延(99分位) 控制组管理器操作速率/时延(99分位) PLEG relist速率/间隔/时延(99分位) RPC速率 请求时延(99分位) 内存/CPU使用量 Go routine数 Prometheus 集群 job instance Target同步间隔 Target数 平均拉取间隔 拉取失败 Appended Samples Head中Series数/Chunks数 查询速率/阶段时延 Prometheus Remote Write 集群 实例 url Highest Timestamp In vs. Highest Timestamp Sent Rate5m Rate in vs. succeeded or dropped 5m 当前/最大/最小/期望分片数 分片容量 挂起样本数 TSDB/远程写入当前段 样本丢弃率/失败率/重试率 入队失败重试率 工作负载 集群 命名空间 类型 工作负载 CPU/内存使用量 网络接收/发送速率 网络平均接收/发送速率 接收/发送数据包速率 丢包率(接收/发送) XGPU视图 集群 集群--XGPU设备显存使用率 集群--XGPU设备算力使用率 节点--XGPU设备显存使用率 节点--XGPU设备算力使用率 节点--XGPU设备数量 节点--XGPU设备显存分配量 GPU卡--XGPU设备显存使用率 GPU卡--XGPU设备显存分配量 GPU卡--XGPU设备显存分配率 GPU卡--XGPU设备算力使用率 GPU卡--XGPU设备数量 GPU卡--调度策略 GPU卡--不健康的XGPU设备数量 容器显存分配量 容器算力使用率 容器显存使用量 容器显存使用率