华为云用户手册

  • Kubernetes事件上报 应用运维管理 AOM ) 当华为云集群版本为1.19.16、1.21.11、1.23.9或1.25.4时,安装CCE 云原生日志采集插件后,默认会将上报所有Warning级别事件以及部分Normal级别事件到应用运维管理(AOM),上报的事件可用于配置告警,安装方法见:收集数据面日志 本地集群可在安装插件时开启或关闭该功能。 自定义事件上报 若已上报的事件不能满足需求,可通过修改配置,修改需要上报到应用运维管理(AOM)的事件。 在集群上执行以下命令,编辑当前的事件采集配置。 kubectl edit logconfig -n kube-system default-event-aom 根据需要修改事件采集配置。 apiVersion: logging.openvessel.io/v1 kind: LogConfig metadata: annotations: helm.sh/resource-policy: keep name: default-event-aom namespace: kube-system spec: inputDetail: #采集端配置 type: event #采集端类型,请勿修改 event: normalEvents: #Normal级别事件采集配置 enable: true #是否开启Normal级别事件采集 includeNames: #需要采集的事件名,不指定则采集所有事件 - NotTriggerScaleUp includeNames: #不采集的事件名,不指定则采集所有事件 - NotTriggerScaleUp warningEvents: #Warning级别事件采集配置 enable: true #是否开启Warning级别事件采集 includeNames: #需要采集的事件名,不指定则采集所有事件 - NotTriggerScaleUp includeNames: #不采集的事件名,不指定则采集所有事件 - NotTriggerScaleUp outputDetail: type: AOM #输出端类型,请勿修改 AOM: events: - name: DeleteNodeWithNoServer #事件名,必选 nameCn: 废弃节点清理 #事件对应的中文名,不填则上报的事件直接显示英文 resourceType: Namespace #事件对应的资源类型 severity: Major #事件上报到AOM后的事件级别,默认Major。可选值:Critical:紧急;Major:重要;Minor:次要;Info:提示
  • 开启本地集群控制面审计日志 集群未安装云原生日志采集插件 安装云原生日志采集插件时,可通过勾选控制面审计日志,创建默认日志采集策略,采集对应组件日志上报到LTS。安装方法见:启用云原生日志采集插件采集日志。 集群已安装云原生日志采集插件 登录容器舰队控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 右上角单击“日志采集策略”,将显示当前集群所有上报LTS的日志策略。 单击上方“创建日志策略”,输入要采集的配置信息。 策略模板:若安装插件时未开启控制面审计日志的采集策略,或者删除了对应的日志策略,可通过该方式重新创建控制面审计日志采集策略。 日志查看:可直接在“日志中心”页面,“控制面审计日志”页签中查看,选择日志策略配置的日志流名称,即可查看上报到 云日志 服务(LTS)的日志。
  • 查看集群控制面组件日志 通过控制台查看目标集群控制面组件日志 登录容器舰队控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 选择“控制面组件日志”页签,在控制面日志中选中需要查看的日志主题,支持的控制面组件日志请参见集群控制面组件说明。关于该页面的操作详情,请参见LTS用户指南。 通过LTS控制台查看目标集群控制面组件日志 登录LTS控制台,选择“日志管理”页面。 通过集群ID查到对应的日志组,单击该日志组名称,查看日志流,详情请参见LTS用户指南。
  • 集群控制面组件说明 当前支持收集以下三种类型的控制面日志,每个日志流对应一个Kubernetes控制层面组件。关于这些组件的更多信息,请参见Kubernetes组件。 表1 集群控制面组件说明 类别 组件 日志流 说明 控制面组件日志 kube-apiserver kube-apiserver-{{clusterID}} kube-apiserver组件是暴露Kubernetes API接口的控制层面的组件。更多信息,请参见kube-apiserver。 kube-controller-manager kube-controller-manager-{{clusterID}} kube-controller-manager组件是Kubernetes集群内部的管理控制中心,内嵌了Kubernetes发布版本中核心的控制链路。更多信息,请参见kube-controller-manager。 kube-scheduler kube-scheduler-{{clusterID}} kube-scheduler组件是Kubernetes集群的默认调度器。更多信息,请参见kube-scheduler。
  • 开启本地集群控制面日志 集群未安装云原生日志采集插件 安装云原生日志采集插件时,可通过勾选对应控制面组件,创建默认日志采集策略,采集对应组件日志上报到LTS。安装方法见:启用云原生日志采集插件采集日志。 集群已安装云原生日志采集插件 登录容器舰队控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 右上角单击“日志采集策略”,将显示当前集群所有上报LTS的日志策略。 单击上方“创建日志策略”,输入要采集的配置信息。 策略模板:若安装插件时未开启控制面组件的采集策略,或者删除了对应的日志策略,可通过该方式重新创建对应组件采集策略。 图1 创建日志策略 日志查看:可直接在“日志中心”页面,“控制面组件日志”页签中查看,选择日志策略配置的日志流名称,即可查看上报到云日志服务(LTS)的日志。 图2 查看日志
  • 开启华为云集群控制面日志 创建集群时开启 登录云容器引擎(CCE)控制台。 在控制台上方导航栏,选择集群,单击“购买”。 在“插件选择”页面中,勾选“云原生日志采集” 在“插件配置”页面中,“云原生日志采集插件”选择“自定义安装”,单击“控制面组件日志”开启采集。 采集容器标准输出:开启后,将创建名为default-stdout的日志策略,并上报所有命名空间下的标准输出到云日志服务(LTS)。 采集Kubernetes事件:开启后,将创建名为default-event的日志策略,并上报所有命名空间下的Kubernetes事件到云日志服务(LTS)。 配置完成后,单击右下角“规格确认”,在弹出的窗口中单击“确定”,完成创建。
  • 使用云原生日志采集插件采集日志 查看并配置日志采集策略。 登录容器舰队控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 右上角单击“日志采集策略”,将显示当前集群所有上报LTS的日志策略。 图1 查看日志策略 若安装插件时勾选了采集标准输出和采集Kubernetes事件,将创建两个日志策略,并对接默认的LTS日志组、日志流。 创建日志策略:单击上方“创建日志策略”,输入要采集的配置信息。 策略模板:若安装插件时未勾选需要采集的日志策略,或者删除了对应的日志策略,可通过该方式重新创建默认日志策略。 图2 使用策略模板 自定义策略:用于配置自定义日志策略。 图3 自定义策略 表2 自定义策略参数说明 参数 说明 日志类型 指定采集哪类日志。 容器标准输出:用于采集容器标准输出,可以按命名空间、工作负载名称、实例标签配置采集策略。 容器文件路径:用于采集容器内的日志,可以按工作负载和实例标签配置采集策略。 节点文件路径:用于采集节点上的日志文件,一条日志策略只能配置一个文件路径。 日志源 采集哪些容器的日志。 所有容器:可以指定采集某个命名空间的所有容器,如不指定则采集所有命名空间的容器。 指定工作负载:指定采集哪些工作负载容器的日志,可以指定采集工作负载中具体容器的日志,如不指定则采集所有容器的日志。 指定实例标签:根据标签指定采集哪些工作负载容器的日志,可以指定采集工作负载中具体容器的日志,如不指定则采集所有容器的日志。 路径配置 用于配置需要采集的日志路径。 文件路径必须以/ 开头,只能包含大写字母、小写字母、数字或特殊字符-_/*?,且长度不能超过512个字符。 文件名称只能包含大写字母、小写字母、数字或特殊字符-_*?.。 日志文件夹:请填写绝对路径。日志文件名:不支持.gz、.tar、.zip后缀类型。 最多有三级目录采用通配符匹配,且第一级目录不能使用通配符。 目录名和文件名支持完整名称和通配符模式,通配符只支持星号(*)和半角问号(?)。 星号(*)表示匹配多个任意字符。半角问号(?)表示匹配单个任意字符。例如: 日志路径为/var/logs/* 文件名*.log,表示/var/logs下所有目录中后缀名为.log的文件。 日志路径为 /var/logs/app_* 文件名*.log,表示/var/logs目录下所有符合app_*格式的目录中后缀名为.log的文件。 如果业务容器的数据目录是通过数据卷(Volume)挂载的,插件不支持采集它的父目录,需设置采集目录为完整的数据目录。例如/var/log/service目录是数据卷挂载的路径,则设置采集目录为/var/log或/var/log/*将采集不到该目录下的日志,需设置采集目录为/var/log/service。 日志格式 单行文本 每条日志仅包含一行文本,以换行符 \n 作为各条日志的分界线。 多行文本 有些程序打印的日志存在一条完整的日志数据跨占多行(例如 Java 程序日志)情况,日志采集系统默认是按行采集。如果您想在日志采集系统中按整条显示日志,可以开启多行文本,采用首行正则的方式进行匹配,当选择多行文本时,需填写日志匹配格式。 例如: 需采集的日志格式如下,则需填写时间的正则匹配,在日志匹配格式处填写:\d{4}-\d{2}-\d{2} \d{2}\:\d{2}\:\d{2}.* 则下面以日期开头三行日志会作为一条完整日志。 2022-01-01 00:00:00 Exception in thread "main" java.lang.RuntimeException: Something has gone wrong, aborting! at com.myproject.module.MyProject.badMethod(MyProject.java:22) at com.myproject.module.MyProject.oneMoreMethod(MyProject.java:18) 上报到云日志服务(LTS) 用于配置日志上报的日志组和日志流。 使用默认日志组/日志流:将为您自动选择默认日志组(k8s-log-{集群ID})和默认的日志流(stdout-{集群ID})。 自定义日志组/日志流:可在下拉框选择任意日志组和日志流。 日志组 日志组是云日志服务进行日志管理的基本单位。如果您未创建日志组,CCE会提示您进行创建,默认名称为k8s-log-{集群ID},如 k8s-log-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3。 日志流 日志流(LogStream):日志流是日志读写的基本单位,日志组中可以创建日志流,将不同类型的日志分类存储,方便对日志进一步分类管理。在安装插件或者根据模板创建日志策略时,会自动创建以下日志流: 容器日志:默认名称为stdout-{集群ID},如 stdout-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3 k8s事件:默认名称为event-{集群ID},如 event-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3 编辑日志策略:单击“编辑”按钮,可对已经存在的日志策略进行修改。 删除日志策略:单击“删除”按钮,可对已经存在的日志策略进行删除。 查看日志。 登录容器舰队控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 日志中心下有5个页签,支持不同类型日志查看。 容器日志:显示默认日志组(k8s-log-{集群ID})下默认日志流(stdout-{集群ID})中的所有日志数据,华为云集群支持通过工作负载搜索。 图4 容器日志查询 Kubernetes事件:显示默认日志组(k8s-log-{集群ID})下默认日志流(event-{集群ID})中的所有日志数据,用于查询集群产生的Kubernetes事件。 控制面组件日志:显示默认日志组(k8s-log-{集群ID})下默认日志流({组件名}-{集群ID})中的所有日志数据,用于查看集群控制面重要组件的日志信息。 控制面审计日志:显示默认日志组(k8s-log-{集群ID})下默认日志流audit-{集群ID})中的所有日志数据,用于查看集群控制面审计日志信息。 全局日志查询:支持查看所有日志组日志流下的日志信息。可通过选择日志流查看所选日志流中的日志信息,默认会选择集群默认日志组(k8s-log-{集群ID}),可通过单击切换日志组右侧的图标切换其他日志组。 图5 全局日志查询 单击右上角“日志采集策略”,单击“查看日志”,可以直接跳转至对应日志策略的日志列表。 图6 查看日志
  • 集群数据面组件说明 当前支持收集以下两种类型的控制面日志,每个日志流对应一个Kubernetes控制层面组件。关于这些组件的更多信息,请参见Kubernetes组件。 表1 集群控制面组件说明 类别 组件 日志流 说明 数据面组件日志 default-stdout stdout-{clusterID} 采集标准输出。默认日志组:k8s-logs-{集群ID}。 default-event event-{clusterID} 采集Kubernetes事件。默认日志组:k8s-logs-{集群ID}。
  • 启用云原生日志采集插件采集日志 登录U CS 控制台,进入“容器舰队”,单击舰队名称进入舰队页面。 选择“容器集群”,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 (仅华为云集群)未进行授权的用户需要先授权,已授权的用户直接跳转下一步。在弹出框中单击“确认授权”。 (仅华为云集群)页面单击“一键开启”,等待约30秒后,页面自动跳转。 采集容器标准输出:开启后,将创建名为default-stdout的日志策略,并上报所有命名空间下的标准输出到云日志服务(LTS)。 采集Kubernetes事件:开启后,将创建名为default-event的日志策略,并上报所有命名空间下的Kubernetes事件到云日志服务(LTS)。 (仅本地集群)为本地集群云原生日志采集插件授权。详细步骤请参见本地集群安装云原生日志插件前置授权。 (仅本地集群)页面单击“立即开启”,在弹窗中进行日志采集配置与网络配置,等待约30秒后,页面自动跳转。 表1 本地集群日志采集配置与网络配置 配置 描述 日志采集配置 采集容器标准输出:开启后,将创建名为default-stdout的日志策略,并上报所有命名空间下的标准输出到云日志服务(LTS)。 采集Kubernetes事件:开启后,将创建名为default-event的日志策略,并上报所有命名空间下的Kubernetes事件到云日志服务(LTS)和应用运维管理(AOM)。 Kubernetes审计日志:采集Kubernetes审计日志并上报到云日志服务 (LTS)。 kube-apiserver日志:采集控制面组件kube-apiserver组件日志并上报到云日志服务(LTS)。 kube-controller-manager日志:采集控制面组件kube-controller-manager组件日志并上报到云日志服务 (LTS)。 kube-scheduler日志:采集控制面组件kube-scheduler组件日志并上报到云日志服务 (LTS )。 网络配置 公网接入:通过公网Internet接入,要求集群能够访问公网,具有弹性灵活、成本低、易接入的优势。公网接入要求集群能够访问公网,请确保集群已符合此条件,否则会接入失败。 云专线/VPN接入:通过云专线(DC)或 虚拟专用网络 (VPN)服务将云下网络与云上虚拟私有云(VPC)连通,并利用 VPC终端节点 通过内网与容器智能分析建立连接,具有高速、低时延、安全的优势。详情见本地集群使用云专线/VPN上报日志。
  • 约束与限制 仅支持1.21及以上版本的华为云集群或本地集群。 每个集群限制50条日志规则。 不采集.gz、.tar、.zip后缀类型的日志文件。 采集容器文件日志时,若节点存储模式为Device Mapper模式,路径配置必须为节点数据盘挂载路径。 若容器运行时为containerd模式,容器标准输出日志中的多行配置暂不生效。(1.3.0及以上版本没有该限制) 每个集群限制单行日志采集速率不超过10000条/秒,多行日志不超过2000条/秒。 每个节点中,所有日志策略监听的文件数不能超过4096个文件 。 如果业务容器的数据目录是通过数据卷(Volume)挂载的,插件不支持采集它的父目录,需设置采集目录为完整的数据目录。 容器运行时间建议不小于1分钟,防止日志文件删除过快,无法及时采集。
  • 流水线发布流程 图1 流水线发布流程 流水线发布的流程如图1所示,具体步骤如下: 配置项目与扩展点。在该小节,您将会为应用开通新的流水线项目,并为该项目配置跨服务权限。 新建发布环境。在该小节,您将会为应用建立新的代码仓库,并配置环境信息以及关联的UCS集群舰队信息。 配置发布策略。在该小节,您将会根据预置的发布模板,配置应用的发布策略。 配置流水线及参数。在该小节,您将会对发布流程进行图形化编排,通过发布插件选择环境级别、发布环境以及产物地址。 发布舰队应用。在该小节,您将会通过流水线,结合上述步骤的调测、编排,实现从源码构建到舰队应用发布全流程的自动化体验。
  • 配置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这个子网。
  • GitOps实现方式 开发运维人员基于Git工作流,可将现有流程,从应用开发扩展到到部署、应用生命周期管理和基础架构配置,开箱即用,客户无须运维Gitops工具。 Gitops插件通过内置Kustomize结合Base/overlay制品组织方式和HelmRelease结合valuesFrom/valuesFiles等方式的能力,满足客户差异化的配置管理诉求。 将Git仓库中最新合入的制品配置信息同步部署至多个集群中,同时对应用发布行为进行版本化管理和权限控制,提供发布回滚和版本迭代控制,并进行审计跟踪。 所需的基础架构状态会自动应用于基础架构,而无需任何手动干预,持续监控并确保基础架构始终遵循Git存储库中的配置,确保基础设施处于理想状态。 图1 GitOps实现方式
  • GitOps优势 简单易学:Git易于被开发者接受,易于集成,无需额外学习成本。 安全性高:开发者使用GitOps无需任何Kubernetes集群权限,仅需要Git仓库权限,保证集群安全可靠。 可靠性强:提供原生Kubernetes资源、Helm Chart资源、Kustomize等资源交付清单的版本管理,方便用户进行部署应用、增量变化和应用配置的回滚。 应用持续部署:Kubernetes集群和Git仓库中的应用状态自动同步,保持一致,实现应用持续部署。
  • GitOps概述 GitOps是使用Git仓库来管理应用的部署模板,将Git仓库作为Kubernetes集群中部署应用的唯一来源,实现应用的持续部署,实现多集群的GitOps持续交付,满足应用的高可用部署、系统组件多集群分发等需求。GitOps假设每一个基础设施都被表示为一个具有版本控制功能的存储系统中的文件,并且有一个自动化的过程可以无缝地将更改的应用同步到应用程序运行环境。 而结合Kubernetes生态中的声明式API、Controller Loop可以更好得实现这一思想,该系统从一开始就遵循声明性规范以及最终一致性和收敛性的原则。
  • 应用场景 在分布式集群场景下,为了方便用户对集群进行应用部署,实现自动化应用下发功能。UCS配置管理提供从仓库资源到Kubernetes集群自动部署应用配置的核心能力,通过采用Kustomize组织和定制资源集的方式配置仓库,提供对华为云集群、多云集群、本地集群和附着集群进行跨命名空间、跨集群、跨舰队的配置分发与配置管理的能力。对用户部署在各集群的业务提供实时的状态观测和 消息通知 ,以确保应用出现问题时可以快速识别和定位,保障使用客户业务App的终端用户的使用体验和服务级别目标(SLO)达成。
  • 查看集群内工作负载列表 工作负载列表中包含工作负载名称、状态、实例个数(正常/全部)、命名空间、镜像名称、CPU使用率,以及内存使用率等信息。 图1 工作负载列表页面 您可以利用页面右上角的命名空间和工作负载类型,以及列表上方的工作负载名称、状态和命名空间进行筛选,快速定位所需的工作负载。 在列表的右上角,您可以单击按钮来导出全部工作负载数据,或者选择部分工作负载进行导出,此时仅导出所选中的数据。导出的文件为“.xlsx”格式,文件命名中包含时间戳。
  • 查看集群内工作负载详情 在工作负载列表中,单击需要查看详情的工作负载名称,进入该工作负载的详情页面,通过切换“概览”、“Pod列表”和“监控”页签查看相应内容。 表1 工作负载详情页面 词条 词条描述 概览 单击工作负载名称,进入工作负载的“概览”页面。 资源概况:包括负载状态、Pod数量(异常/总数)以及异常事件。 监控概览:包括CPU使用率、内存使用率和网络流入/流出速率这些常见的监控指标。 图2 资源概况和监控概览 Pod使用趋势:包括工作负载中各Pod的CPU使用率、CPU使用量、内存使用率和内存使用量(在图表左上角切换对应指标),并且支持查看降序Top5和升序Top5数据(在图表右上角进行切换)。 图3 Pod使用趋势 Pod列表 Pod列表中包含了实例名称、状态、命名空间、实例IP、所在节点、重启次数、CPU申请/限制、内存申请/限制,以及CPU和内存使用率等详细信息。 您可以通过在列表上方按照实例名称、状态、命名空间、实例IP和所在节点进行筛选,快速找到需要的实例。 在列表的右上角,您可以单击按钮来导出全部实例数据,或者选择部分实例进行导出,此时仅导出所选中的数据。导出的文件为“.xlsx”格式,文件命名中包含时间戳。 单击实例名称可以查看实例的详细监控数据。更多相关内容,请参见查看集群内Pod情况。 监控 在此处,您可以方便地查看工作负载在近1小时、近8小时、近24小时以及自定义时间段内各维度资源的使用情况。 如需查看更多监控信息,请单击“查看全部仪表盘”,跳转至“仪表盘”页面,相应指导请参见仪表盘。
  • 查看集群内节点详情 在节点列表中,单击需要查看详情的节点名称,进入该节点的详情页面,通过切换“概览”、“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%时,意味着节点资源超分,节点上的负载限制值(可使用的最大值)之和已经超过了节点规格。如果负载占用资源过高,可能会导致节点异常。
  • 查看集群详情 集群详情页面提供了单个集群的监控情况,包含资源概况、资源消耗TOP统计和用量统计多维度的信息概况。通过集群监控您可以及时了解集群的资源使用情况和趋势,快速响应可能存在的风险项,保证集群流畅运行。 您可以将鼠标悬停在图表上,以便查看每分钟的监控数据。 图1 集群详情页面 表1 集群详情页面 词条 词条简介 集群健康度 资源健康度评估包括多个维度,如健康评分、待处理风险项数、风险等级,以及诊断风险项在Master、集群、节点、工作负载和外部依赖五个方面的占比(异常数据使用红色突出显示)。欲了解更多诊断结果,请前往健康诊断页面查看。 须知: 当集群所安装的kube-prometheus-stack插件的部署模式为“Server模式”时,方可以查看集群的资源健康度。 资源健康概况 资源概况涵盖了节点、工作负载和容器组三类资源中异常资源所占比例,以及命名空间的总数。此外,还包括了控制面组件和Master节点的异常占比、API Server总QPS以及API Server请求错误率。 作为集群的 API服务 提供者,控制面API Server的异常可能会导致整个集群无法访问,同时也会影响依赖API Server的工作负载的正常运行。为了帮助您快速识别和修复问题,资源概况中提供了API Server的总QPS和请求错误率指标。 资源消耗Top统计 在资源消耗TOP统计中,UCS服务会将CPU使用率和内存使用率排名前五的节点、无状态负载、有状态负载和Pod纳入统计范围,以帮助您识别资源消耗“大户”。 说明: CPU使用率 工作负载CPU使用率 = 工作负载各个Pod中CPU使用率的平均值 Pod CPU使用率 = Pod实际使用的CPU核数 / 业务容器CPU核数限制值之和(未配置限制值时采用节点总量) 内存使用率 工作负载内存使用率 = 工作负载各个Pod中内存使用率的平均值 Pod内存使用率 = Pod实际使用的物理内存 / 业务容器物理内存限制值之和(未配置限制值时采用节点总量) 数据面监控 此处默认统计近1小时、近8小时和近24小时的各维度资源用量。如需查看更多监控信息,请单击“查看全部监控”,跳转至“仪表盘”页面,相应指导请参见仪表盘。
  • 基础软件规划 节点的操作系统、内核版本等基础软件需要符合表1中的版本要求。 表1 基础软件规划 系统架构 系统类型 网络模型支持 操作系统版本 内核版本限制 x86 Ubuntu 20.04 Cilium 检查命令:cat /etc/lsb-release DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS" 检查命令:uname -r 5.15.0-1017-aws Cilium是一种网络插件,支持BGP、eBPF等网络协议,更多内容请参见Cilium官方文档。 多云集群采用containerd作为容器引擎,如果节点操作系统已经安装containerd、runC组件,UCS将直接使用上述组件。 父主题: 安装多云集群的业务规划
  • 准备网络环境 伙伴云集群的数据接入方式支持公网接入和私网接入。 公网接入是通过公网Internet接入,要求集群能够访问公网,具有弹性灵活、成本低、易接入的优势。如果对网络质量没有要求,只想采用更简便的方式接入,那么公网接入是个不错的选择。 公网接入要求集群能够访问公网,请确保集群已符合此条件,否则会接入失败。 私网接入是通过云专线(DC)或虚拟专用网络(VPN)服务将伙伴云网络与云上虚拟私有云(VPC)连通,并利用VPC终端节点通过内网与容器智能分析建立连接,具有高速、低时延、安全的优势。 图1 私网接入原理 因此,在开启之前,您需要准备满足一个云上虚拟私有云(VPC),并将伙伴云厂商的网络环境与该VPC连通。VPC子网网段不能与伙伴云中已使用的网络网段重叠,否则将无法接入集群,例如,伙伴云中已使用的VPC子网为192.168.1.0/24,那么华为云VPC中不能使用192.168.1.0/24这个子网。 网络连通可以选用如下两种方案: 虚拟专用网络(VPN)方案:请参见通过VPN连接云下数据中心与云上VPC。 云专线(DC)方案:请参见用户通过单专线静态路由访问VPC或用户通过单专线BGP协议访问VPC。
  • 使用须知 UCS的权限管理功能与当前联邦RBAC授权互不影响。使用UCS API时,前者生效;使用KubeConfig直接操作联邦时,后者生效。 在集群联邦和成员集群上分别创建的RBAC资源互相不感知、不影响。通过集群联邦入口配置的RBAC权限仅直接访问联邦时生效;直接访问成员集群时,仅成员集群上配置的RBAC生效。 在分配细粒度鉴权时,谨慎使用ClusterRole、ClusterRoleBinding等相关权限和角色配置,避免将资源查看权限赋予“Karmada-”为前缀的命名空间;建议使用Role、RoleBinding对指定用户命名空间的资源赋予权限。
  • 集群联邦支持的资源及操作 集群联邦支持的Kubernetes资源及相关操作见表1。表内为“√”表明集群联邦支持对该Kubernetes资源进行该操作,表内为“部分支持”表明集群联邦部分支持对该Kubernetes资源进行该操作,表内为空则表明集群联邦不支持对该Kubernetes资源进行该操作。 表1 集群联邦支持的资源及操作 组/版本 资源 GET LIST WATCH CREATE UPDATE PATCH DELETE core/v1 pods √ √ √ √ √ √ √ pods/log √ - - - - - - pods/exec √ - - √ - - - pods/status √ - - - - - - configmaps √ √ √ √ √ √ √ secrets √ √ √ √ √ √ √ services √ √ √ √ √ √ √ nodes √ √ √ - √ √ - namespaces √ √ √ √ √ √ √ endpoints √ √ - - - - - events √ √ - - - - - limitranges √ √ - - - - - resourcequotas √ √ - - - - - persistentvolumeclaims √ √ - - - - - persistentvolumes √ √ - - - - - serviceaccounts √ √ - - - - - admissionregistration.k8s.io/v1 mutatingwebhookconfigurations √ √ - - - - - validatingwebhookconfigurations √ √ - - - - - apiextensions.k8s.io/v1 customresourcedefinitions √ √ √ √ √ √ √ apiregistration.k8s.io/v1 apiservices √ √ - - - - - apps/v1 deployments √ √ √ √ √ √ √ deployments/scale √ - - - √ - - deployments/status √ - - - - - - daemonsets √ √ √ √ √ √ √ daemonsets/status √ - - - - - - statefulsets √ √ √ √ √ √ √ statefulsets/status √ - - - - - - replicasets √ √ - - - - - autoscaling/(v1、v2、v2beta1、v2beta2) horizontalpodautoscalers √ √ √ √ √ √ √ batch/v1 jobs √ √ √ √ √ √ √ jobs/status √ - - - - - - cronjobs √ √ √ √ √ √ √ cronjobs/status √ - - - - - - discovery.k8s.io/v1 endpointslices √ √ - - - - - events.k8s.io/v1 events √ √ - - - - - networking.k8s.io/v1 ingresses √ √ √ √ 部分支持 部分支持 √ ingressclasses √ √ - - - - - networkpolicies √ √ - - - - - policy/(v1、v1beta1) poddisruptionbudgets √ √ √ √ √ √ √ rbac.authorization.k8s.io/v1 clusterrolebindings √ √ √ √ √ √ √ clusterroles √ √ √ √ √ √ √ rolebindings √ √ √ √ √ √ √ roles √ √ √ √ √ √ √ storage.k8s.io/v1 storageclasses √ √ - - - - - 对于集群中的自定义资源,在集群联邦中注册该CRD后,才可支持通过集群联邦入口进行操作。 Ingress对象的UPDATE和PATCH操作仅支持集群联邦控制面中的资源,不支持成员集群中的资源。
  • 通过kubectl连接集群联邦 登录UCS控制台,单击目标容器舰队名进入“容器舰队信息”页面,在“舰队基本信息”中单击“kubectl”。 图1 kubectl连接信息 参照页面中的提示信息,选择对应的项目名称、虚拟私有云(VPC)、控制节点子网以及有效期,单击“下载”,下载kubectl配置文件。 下载下来的文件名为kubeconfig.json。 图2 kubectl连接联邦实例 kubeconfig.json文件中存在安全泄露风险,请您务必妥善保存。 kubectl配置文件有效期可根据实际需求选择,下拉列表内可选范围为:5年、1年、6个月、30天、15天、14天、13天...1天,最短为1天。 在执行机上安装和配置kubectl。 拷贝kubectl及其配置文件到上述所选的vpc和子网下的执行机的/home目录下。 登录到您的执行机,配置kubectl。 cd /home chmod +x kubectl mv -f kubectl /usr/local/bin mkdir -p $HOME/.kube mv -f kubeconfig.json $HOME/.kube/config
  • 编辑YAML 可通过在线YAML编辑窗对无状态工作负载、有状态工作负载、守护进程集、定时任务和容器组的YAML文件进行修改和下载。普通任务的YAML文件仅支持查看、复制和下载。本文以无状态工作负载为例说明如何在线编辑YAML。 登录UCS控制台,进入一个已有的容器舰队,在左侧导航栏中选择“工作负载”。 选择“无状态负载”页签,单击工作负载后的“编辑YAML”,在弹出的“编辑YAML”窗中可对当前工作负载的YAML文件进行修改。 单击“确定”,完成修改。 (可选)在“编辑YAML”窗中,单击“下载”,可下载该YAML文件。
  • 操作场景 工作负载创建后,您可以对其执行查看详情升级、编辑YAML、重新部署、重新调度、删除等操作。 表1 工作负载管理 操作 描述 查看详情 可查看Pod和工作负载的基本信息、事件和状态等,并对工作负载的配置进行修改。 编辑YAML 可通过在线YAML编辑窗对工作负载的YAML文件进行修改和下载。普通任务的YAML文件仅支持查看、复制和下载。 升级 可以通过更换镜像或镜像版本实现工作负载的快速升级,业务无中断。 重新部署 工作负载可以进行重新部署操作,重新部署后将重启负载下的全部容器组Pod,仅无状态工作负载可用。 重新调度 工作负载可以进行重新调度,重新调度后将按照已有的调度策略进行调度,仅无状态工作负载可用。 删除 若工作负载无需再使用,您可以将工作负载或任务删除。工作负载或任务删除后,将无法恢复,请谨慎操作。
共100000条