华为云用户手册

  • 自动创建ELB的参数说明 表14 elb.autocreate字段数据结构说明 参数 是否必填 参数类型 描述 name 否 String 自动创建的负载均衡的名称。 取值范围:只能由中文、英文字母、数字、下划线、中划线、点组成,且长度范围为1-64个字符。 默认名称:cce-lb+service.UID type 否 String 负载均衡实例网络类型,公网或者私网。 public:公网型负载均衡 inner:私网型负载均衡 默认类型:inner bandwidth_name 公网型负载均衡必填 String 带宽的名称,默认值为:cce-bandwidth-******。 取值范围:只能由中文、英文字母、数字、下划线、中划线、点组成,且长度范围为1-64个字符。 bandwidth_chargemode 否 String 带宽付费模式。 bandwidth:按带宽 traffic:按流量 默认类型:bandwidth bandwidth_size 公网型负载均衡必填 Integer 带宽大小,默认1Mbit/s~2000Mbit/s,请根据Region带宽支持范围设置。 调整带宽时的最小单位会根据带宽范围不同存在差异。 小于等于300Mbit/s:默认最小单位为1Mbit/s。 300Mbit/s~1000Mbit/s:默认最小单位为50Mbit/s。 大于1000Mbit/s:默认最小单位为500Mbit/s。 bandwidth_sharetype 公网型负载均衡必填 String 带宽共享方式。 PER:独享带宽 eip_type 公网型负载均衡必填 String 弹性公网IP类型。 5_telcom:电信 5_union:联通 5_bgp:全动态BGP 5_sbgp:静态BGP 具体类型以各区域配置为准,详情请参见弹性公网IP控制台。 vip_subnet_cidr_id 否 String 指定ELB所在的子网,该子网必须属于集群所在的VPC。 如不指定,则ELB与集群在同一个子网。 仅v1.21及以上版本的集群支持指定该字段。 vip_address 否 String 负载均衡器的内网IP。仅支持指定IPv4地址,不支持指定IPv6地址。 该IP必须为ELB所在子网网段中的IP。若不指定,自动从ELB所在子网网段中生成一个IP地址。 仅v1.23.11-r0、v1.25.6-r0、v1.27.3-r0及以上版本集群支持指定该字段。 available_zone 是 Array of strings 负载均衡所在可用区。 可以通过查询可用区列表获取所有支持的可用区。 独享型负载均衡器独有字段。 l4_flavor_name 是 String 四层负载均衡实例规格名称。 可以通过查询规格列表获取所有支持的类型。 弹性规格:适用于业务用量波动较大的场景,按实际使用量收取每小时使用的容量费用。v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上版本集群支持使用弹性规格。 固定规格:适用于业务用量较为稳定的场景,按固定规格折算收取每小时使用的容量费用。 独享型负载均衡器独有字段。 l7_flavor_name 否 String 七层负载均衡实例规格名称。 可以通过查询规格列表获取所有支持的类型。 弹性规格:适用于业务用量波动较大的场景,按实际使用量收取每小时使用的容量费用。v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上版本集群支持使用弹性规格。 固定规格:适用于业务用量较为稳定的场景,按固定规格折算收取每小时使用的容量费用。 独享型负载均衡器独有字段,必须与l4_flavor_name对应规格的类型一致,即都为弹性规格或都为固定规格。 elb_virsubnet_ids 否 Array of strings 负载均衡后端所在子网,不填默认为集群子网。不同实例规格将占用不同数量子网IP,不建议使用其他资源(如集群,节点等)的子网网段。 独享型负载均衡器独有字段。 示例: "elb_virsubnet_ids": [ "14567f27-8ae4-42b8-ae47-9f847a4690dd" ] ipv6_vip_virsubnet_id 否 String 双栈类型负载均衡器所在子网的IPv6网络ID,需要对应的子网开启IPv6,仅使用双栈集群时需填写。 独享型负载均衡器独有字段。 表15 elb.health-check-option字段数据结构说明 参数 是否必填 参数类型 描述 delay 否 String 健康检查间隔(秒)。 默认值:5,取值范围:1-50 timeout 否 String 健康检查的超时时间(秒)。 默认值:10,取值范围1-50 max_retries 否 String 健康检查的最大重试次数。 默认值:3,取值范围1-10 protocol 否 String 健康检查的协议。 取值范围:“TCP”或者“HTTP” path 否 String 健康检查的URL,协议是“HTTP”时配置。 默认值:“/” 取值范围:1-80字符 表16 elb.health-check-options字段数据结构说明 参数 是否必填 参数类型 描述 target_service_port 是 String spec.ports添加健康检查的目标端口,由协议、端口号组成,如:TCP:80 monitor_port 否 String 重新指定的健康检查端口,不指定时默认使用业务端口。 说明: 请确保该端口在Pod所在节点已被监听,否则会影响健康检查结果。 delay 否 String 健康检查间隔(秒) 默认值:5,取值范围:1-50 timeout 否 String 健康检查的超时时间(秒) 默认值:10,取值范围1-50 max_retries 否 String 健康检查的最大重试次数 默认值:3,取值范围1-10 protocol 否 String 健康检查的协议 默认值:取关联服务的协议 取值范围:“TCP”、“UDP”或者“HTTP” path 否 String 健康检查的URL,协议是“HTTP”时需要配置 默认值:“/” 取值范围:1-80字符 expected_codes 否 String 期望响应状态码,仅v1.19.16-r50、v1.21.11-r10、v1.23.9-r10、v1.25.4-r10、v1.27.1-r10及以上版本的集群支持。 取值: 单值:单个返回码,例如"200"。 列表:多个特定返回码,例如"200,202"。 区间:一个返回码区间,例如"200-204"。 默认值:200,取值范围1-64个字符 仅支持HTTP设置该字段,其他协议设置不会生效。 表17 elb.session-affinity-option字段数据结构说明 参数 是否必填 参数类型 描述 persistence_timeout 是 String 当elb.session-affinity-mode是“SOURCE_IP”时生效,设置会话保持的超时时间(分钟)。 默认值为:"60",取值范围:1-60。
  • 版本记录 表3 CCE容器网络扩展指标插件版本记录 插件版本 支持的集群版本 更新特性 1.4.5 v1.23 v1.25 v1.27 v1.28 v1.29 支持普通容器Pod粒度的UDP、TCP drop、TCP connect fail监控 支持普通容器flow粒度的UDP、TCP drop监控 支持HCE 2.0 x86和HCE 2.0 ARM 支持CCE v1.29集群 1.3.10 v1.23 v1.25 v1.27 v1.28 修复部分问题 1.3.8 v1.23 v1.25 v1.27 v1.28 支持普通容器pod粒度的IP和TCP监控 支持普通容器flow粒度的IP和TCP监控 支持CCE v1.27集群 支持CCE v1.28集群 1.2.27 v1.19 v1.21 v1.23 v1.25 - 1.2.7 v1.19 v1.21 v1.23 v1.25 - 1.2.5 v1.19 v1.21 v1.23 v1.25 - 1.2.4 v1.19 v1.21 v1.23 v1.25 增加不支持EulerOS以外操作系统描述 1.2.2 v1.19 v1.21 v1.23 v1.25 本地Pod VPC网络健康检查 1.1.8 v1.19 v1.21 v1.23 v1.25 适配CCE v1.25集群 1.1.6 v1.19 v1.21 v1.23 - 1.1.5 v1.19 v1.21 v1.23 liveness健康检查优化 1.1.2 v1.19 v1.21 v1.23 支持操作系统类型宽匹配 1.0.1 v1.19 v1.21 支持流量统计数据持久化和本地socket通信.
  • 下发监控任务 MonitorPolicy创建的模板如下: apiVersion: crd.dolphin.io/v1 kind: MonitorPolicy metadata: name: example-task #监控任务名 namespace: kube-system #必填,namespace必须为kube-system spec: selector: #选填,配置dolphin插件监控的后端,形如labelSelector格式,默认将监控本节点所有容器 matchLabels: app: nginx matchExpressions: - key: app operator: In values: - nginx podLabel: [app] #选填,用户标签 ip4Tx: #选填,ipv4发送报文数和发送字节数这两个指标的开关,默认不开 enable: true ip4Rx: #选填,ipv4接收报文数和接收字节数这两个指标的开关,默认不开 enable: true ip4TxInternet: #选填,ipv4发送公网报文数和发送公网字节数这两个指标的开关,默认不开 enable: true healthCheck: #选填,本地节点 Pod 健康检查任务中最近一次健康检查是否健康、健康检查总健康&不健康次数这三个指标开关,默认不开 enable: true # true false failureThreshold: 3 #选填,健康检查不健康判定失败次数,默认1次健康检查失败即判定不健康 periodSeconds: 5 #选填,健康检查任务检查间隔时间,单位秒,默认60 command: "" #选填,健康检查任务检查命令,支持:ping、arping、curl,默认 ping ipFamilies: [""] #选填,健康检查IP地址族,支持:ipv4,默认ipv4 port: 80 #选填,使用curl时必选,端口号 path: "" #选填,使用curl时必选,http api 路径 monitor: ip: ipReceive: aggregateType: flow #选填,支持填写"pod"或"flow",分别表示pod粒度监控或流粒度监控 ipSend: aggregateType: flow #选填,支持填写"pod"或"flow",分别表示pod粒度监控或流粒度监控 tcp: tcpReceive: aggregateType: flow #选填,支持填写"pod"或"flow",分别表示pod粒度监控或流粒度监控 tcpSend: aggregateType: flow #选填,支持填写"pod"或"flow",分别表示pod粒度监控或流粒度监控 tcpRetrans: aggregateType: flow #选填,支持填写"pod"或"flow",分别表示pod粒度监控或流粒度监控 tcpRtt: aggregateType: flow #选填,支持填写"flow",表示流粒度监控,单位:微秒 tcpNewConnection: aggregateType: pod #选填,支持填写"pod",表示pod粒度监控 tcpDrop: aggregateType: flow #选填,支持填写"pod"或"flow",分别表示pod粒度监控或流粒度监控 tcpConnectionFailure: aggregateType: pod #选填,支持填写"pod",表示pod粒度监控 udp: udpReceive: aggregateType: flow #选填,支持填写"pod"或"flow",分别表示pod粒度监控或流粒度监控 udpSend: aggregateType: flow #选填,支持填写"pod"或"flow",分别表示pod粒度监控或流粒度监控 用户标签PodLabel:可输入多个Pod的label标签,以逗号分隔,如[app, version]。 标签需符合以下规则,对应正则表达式为(^[a-zA-Z_]$)|(^([a-zA-Z][a-zA-Z0-9_]|_[a-zA-Z0-9])([a-zA-Z0-9_]){0,254}$): 支持输入最多5个标签(1.3.4版本后最多支持10个标签),单个标签长度最长256个字符。 不能以数字和双下划线__开头。 单个标签格式需符合A-Za-z_0-9。 用户可以按照上述格式对监控任务进行创建、修改、及删除,当前仅支持最多10个监控任务的创建,且多个监控任务匹配到同一个监控后端时,每一个监控后端将会产生监控任务数量的监控指标。 修改或删除监控任务,都将导致丢失原有监控任务所采集的监控数据,请谨慎操作。 用户卸载插件后,用户之前配置的监控任务MonitorPolicy将随着插件卸载一并销毁。 场景化示例如下: 以下示例将监控节点上满足app=nginx的labelselector的所有Pod,生成三个健康检查指标,默认使用ping方式检测本地Pod,若监控的容器携带test及app这两个标签,将在监控指标上携带对应label的key-value信息,否则对应label的value为“not found”。 apiVersion: crd.dolphin.io/v1 kind: MonitorPolicy metadata: name: example-task namespace: kube-system spec: selector: matchLabels: app: nginx podLabel: [test, app] healthCheck: enable: true failureThreshold: 3 periodSeconds: 5 以下示例将监控节点上满足app=nginx的labelselector的所有Pod,生成三个健康检查指标,自定义curl方式(此处curl只考虑网络连通性,不论程序返回的http code是什么,只要网络能连通就认为Pod是健康的)。若监控的容器携带test及app这两个标签,将在监控指标上携带对应label的key-value信息,否则对应label的value为“not found”。 apiVersion: crd.dolphin.io/v1 kind: MonitorPolicy metadata: name: example-task namespace: kube-system spec: selector: matchLabels: app: nginx podLabel: [test, app] healthCheck: enable: true failureThreshold: 3 periodSeconds: 5 command: "curl" port: 80 path: "healthz" 以下示例将监控节点上满足app=nginx的labelselector的所有Pod,监控Pod粒度的IP收发报文数、IP收发字节数、TCP收发报文数、TCP收发字节数、TCP重传报文数、TCP新建连接数、TCP丢包数、TCP建链失败数、UDP收发报文数、UDP收发字节数,若监控的容器携带test及app这两个标签,将在监控指标上携带对应label的key-value信息,否则对应label的value为“not found”。 apiVersion: crd.dolphin.io/v1 kind: MonitorPolicy metadata: name: example-task namespace: kube-system spec: selector: matchLabels: app: nginx podLabel: [test, app] monitor: ip: ipReceive: aggregateType: pod ipSend: aggregateType: pod tcp: tcpReceive: aggregateType: pod tcpSend: aggregateType: pod tcpRetrans: aggregateType: pod tcpNewConnection: aggregateType: pod tcpDrop: aggregateType: pod tcpConnectionFailure: aggregateType: pod udp: udpReceive: aggregateType: pod udpSend: aggregateType: pod 以下示例将监控节点上满足app=nginx的labelselector的所有Pod,监控流粒度的IP收发报文数、IP收发字节数、TCP收发报文数、TCP收发字节数、TCP重传报文数、tcp round trip time(单位:微秒)、TCP丢包数、UDP收发报文数、UDP收发字节数,若监控的容器携带test及app这两个标签,将在监控指标上携带对应label的key-value信息,否则对应label的value为“not found”。使用流粒度监控能力,用户可以更细腻的感知容器的流量信息。基于流的监控数据量较大,会占用更多的cpu和内存,请按需使用。 每开启一个基于流的IP监控任务(一个MonitorPolicy中开启一个和多个IP监控项)会占用内核2.6M内存;每开启一个基于流的TCP监控任务(一个MonitorPolicy中开启一个和多个TCP监控项)会占用内核14M内存。 apiVersion: crd.dolphin.io/v1 kind: MonitorPolicy metadata: name: example-task namespace: kube-system spec: selector: matchLabels: app: nginx podLabel: [test, app] monitor: ip: ipReceive: aggregateType: flow ipSend: aggregateType: flow tcp: tcpReceive: aggregateType: flow tcpSend: aggregateType: flow tcpRetrans: aggregateType: flow tcpRtt: aggregateType: flow tcpDrop: aggregateType: flow udp: udpReceive: aggregateType: flow udpSend: aggregateType: flow 基于流的监控数据量比较大时,当数据量超过一定限制时,会导致超限的流统计丢失,当前限制如下: 10s内内核态最多统计5w条(每监控任务)TCP流信息。 10s内内核态最多统计1w条(每监控任务)IP流信息。 两次普罗拉取间隔最多缓存6w条(所有监控任务)流统计信息。 普罗长时间不拉取时,只缓存1小时内的监控数据。 以下示例将监控节点上所有Pod,生成IPv4发送报文数和发送字节数这两个指标,若监控的容器携带app这个标签,将在监控指标上携带对应label的key-value信息,否则对应label的value为“not found”。 apiVersion: crd.dolphin.io/v1 kind: MonitorPolicy metadata: name: example-task namespace: kube-system spec: podLabel: [app] ip4Tx: enable: true 以下示例将监控节点上满足app=nginx的labelselector的所有Pod,生成IPv4收发报文数、IPv4收发字节数、IPv4发送公网报文数和字节数等指标,若监控的容器携带test及app这两个标签,将在监控指标上携带对应label的key-value信息,否则对应label的value为“not found”。 apiVersion: crd.dolphin.io/v1 kind: MonitorPolicy metadata: name: example-task namespace: kube-system spec: selector: matchLabels: app: nginx podLabel: [test, app] ip4Tx: enable: true ip4Rx: enable: true ip4TxInternet: enable: true
  • 查看流量统计 dolphin插件的监控信息以Prometheus exporter格式输出,有以下方式获取dolphin插件的监控信息: 直接访问dolphin插件提供的服务端口10001,形如http://{POD_IP}:10001/metrics 注意,如果在节点上访问dolphin服务端口,需要放通节点和Pod的安全组限制。 获取的监控信息示例如下: 示例1(IPv4发送公网报文数): dolphin_ip4_send_pkt_internet{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task "} 241 如上示例中,Pod所在命名空间为default,Pod名称为nginx-66c9c65dbf-zjg24,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,该Pod的发送公网报文数为241。 示例2(IPv4发送公网字节数): dolphin_ip4_send_byte_internet{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task" } 23618 如上示例中,Pod所在命名空间为default,Pod名称为nginx-66c9c65dbf-zjg24,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,该Pod的发送公网字节数为23618。 示例3(IPv4发送报文数): dolphin_ip4_send_pkt{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task "} 379 如上示例中,Pod所在命名空间为default,Pod名称为nginx-66c9c65dbf-zjg24,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,该Pod的发送报文数为379。 示例4(IPv4发送字节数): dolphin_ip4_send_byte{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task "} 33129 如上示例中,Pod所在命名空间为default,Pod名称为nginx-66c9c65dbf-zjg24,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,该Pod的发送字节数为33129。 示例5(IPv4接收报文数): dolphin_ip4_rcv_pkt{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task "} 464 如上示例中,Pod所在命名空间为default,Pod名称为nginx-66c9c65dbf-zjg24,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,该Pod的接收报文数为464。 示例6(IPv4接收字节数): dolphin_ip4_rcv_byte{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task "} 34654 如上示例中,Pod所在命名空间为default,Pod名称为nginx-66c9c65dbf-zjg24,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,该Pod的接收字节数为34654。 示例7(健康检查状态): dolphin_health_check_status{app="nginx",pod="default/nginx-b74766f5f-7582p",task="kube-system/example-task"} 0 如上示例中,Pod所在命名空间为kube-system,Pod名称为default/nginx-deployment-b74766f5f-7582p,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,该Pod的网络健康状态为0(健康),不健康值为 1。 示例8(健康检查成功次数): dolphin_health_check_successful_counter{app="nginx",pod="default/nginx-b74766f5f-7582p",task="kube-system/example-task"} 5 如上示例中,Pod所在命名空间为kube-system,Pod名称为default/nginx-deployment-b74766f5f-7582p,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,该Pod的网络健康检查成功次数为5。 示例9(健康检查失败次数): dolphin_health_check_failed_counter{app="nginx",pod="default/nginx-b74766f5f-7582p",task="kube-system/example-task"} 0 如上示例中,Pod所在命名空间为kube-system,Pod名称为default/nginx-deployment-b74766f5f-7582p,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,该Pod的网络健康失败次数为0。 示例10(流粒度监控结果): dolphin_flow_tcp_send_byte{app="nginx",dstip="192.168.0.89",dstport="80",ipfamily="ipv4",pod="kube-system/nginx-b74766f5f-7582p",srcip="192.168.1.67",srcport="12973",task="kube-system/example-task"} 1725 1700538280914 如上示例中,Pod所在命名空间为kube-system,Pod名称为nginx-b74766f5f-7582p,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,192.168.1.67:12973向192.168.0.89:80的发送IPv4 TCP字节数为1725,时间戳为1700538280914。 示例11(Pod粒度监控结果): dolphin_tcp_send_pkt{app="nginx",ipfamily="ipv4",pod="kube-system/nginx-b74766f5f-7582p",task="kube-system/example-task"} 14 dolphin_tcp_send_pkt{app="nginx",ipfamily="ipv6",pod="kube-system/nginx-b74766f5f-7582p",task="kube-system/example-task"} 0 如上示例中,Pod所在命名空间为kube-system,Pod名称为nginx-b74766f5f-7582p,用户指定label为app,其值对应为nginx,该监控指标由名称为example-task的监控任务创建,该Pod发送IPv4报文数为14,发送的IPv6报文数为0。 若容器无用户指定的标签,返回体中标签值为not found。形如: dolphin_ip4_send_byte_internet{test="not found", pod="default/nginx-66c9c65dbf-zjg24",task="default" } 23618
  • 支持的监控项 当前用户可通过创建MonitorPolicy的方式下发监控任务,当前用户可以通过API或登录工作节点kubectl apply的方式创建MonitorPolicy。一个MonitorPolicy代表着一个监控任务,提供selector、podLabel等可选参数。当前支持的监控指标如下: 表2 当前支持的监控指标 监控指标 监控项名称 监控粒度 支持的运行时 支持的集群版本 支持的插件版本 支持的操作系统 IPv4发送公网报文数 dolphin_ip4_send_pkt_internet pod runc/kata v1.19及以上 1.1.2 EulerOS 2.9 x86 EulerOS 2.10 x86 IPv4发送公网字节数 dolphin_ip4_send_byte_internet pod runc/kata v1.19及以上 1.1.2 EulerOS 2.9 x86 EulerOS 2.10 x86 IPv4接收报文数 dolphin_ip4_rcv_pkt pod runc/kata v1.19及以上 1.1.2 EulerOS 2.9 x86 EulerOS 2.10 x86 IPv4接收字节数 dolphin_ip4_rcv_byte pod runc/kata v1.19及以上 1.1.2 EulerOS 2.9 x86 EulerOS 2.10 x86 IPv4发送报文数 dolphin_ip4_send_pkt pod runc/kata v1.19及以上 1.1.2 EulerOS 2.9 x86 EulerOS 2.10 x86 IPv4发送字节数 dolphin_ip4_send_byte pod runc/kata v1.19及以上 1.1.2 EulerOS 2.9 x86 EulerOS 2.10 x86 最近一次的健康检查健康状态 dolphin_health_check_status pod runc/kata v1.19及以上 1.2.2 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) 健康检查成功累计次数 dolphin_health_check_successful_counter pod runc/kata v1.19及以上 1.2.2 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) 健康检查失败累计次数 dolphin_health_check_failed_counter pod runc/kata v1.19及以上 1.2.2 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) IP接收报文数 dolphin_ip_receive_pkt pod runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) IP接收字节数 dolphin_ip_receive_byte pod runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) IP发送报文数 dolphin_ip_send_pkt pod runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) IP发送字节数 dolphin_ip_send_byte pod runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP接收报文数 dolphin_tcp_receive_pkt pod runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP接收字节数 dolphin_tcp_receive_byte pod runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP发送报文数 dolphin_tcp_send_pkt pod runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP发送字节数 dolphin_tcp_send_byte pod runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP重传报文数 dolphin_tcp_retrans pod runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP新建连接数 dolphin_tcp_connection pod runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) IP接收报文数 dolphin_flow_ip_receive_pkt flow runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) IP接收字节数 dolphin_flow_ip_receive_byte flow runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) IP发送报文数 dolphin_flow_ip_send_pkt flow runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) IP发送字节数 dolphin_flow_ip_send_byte flow runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP接收报文数 dolphin_flow_tcp_receive_pkt flow runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP接收字节数 dolphin_flow_tcp_receive_byte flow runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP发送报文数 dolphin_flow_tcp_send_pkt flow runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP发送字节数 dolphin_flow_tcp_send_byte flow runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP重传报文数 dolphin_flow_tcp_retrans flow runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP smoothed round trip dolphin_flow_tcp_srtt flow runc v1.23及以上 1.3.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM(1.4.5及以上版本的插件支持) TCP丢包数 dolphin_tcp_drop pod runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM TCP丢包数 dolphin_flow_tcp_drop flow runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM TCP建链失败数 dolphin_tcp_connection_failure pod runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM UDP接收报文数 dolphin_udp_receive_pkt pod runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM UDP接收字节数 dolphin_udp_receive_byte pod runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM UDP发送报文数 dolphin_udp_send_pkt pod runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM UDP发送字节数 dolphin_udp_send_byte pod runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM UDP接收报文数 dolphin_flow_udp_receive_pkt flow runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM UDP接收字节数 dolphin_flow_udp_receive_byte flow runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM UDP发送报文数 dolphin_flow_udp_send_pkt flow runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM UDP发送字节数 dolphin_flow_udp_send_byte flow runc v1.23及以上 1.4.5 EulerOS 2.9 x86 EulerOS 2.10 x86 HCE 2.0 x86/ARM
  • 插件简介 CCE容器网络扩展指标插件(dolphin)是一款容器网络流量监控管理插件,当前版本可支持 CCE Turbo 集群非主机网络容器的流量统计,以及节点内容器联通性健康检查。 当前支持Pod粒度和flow粒度的IP、UDP和TCP协议监控,且支持通过PodSelector来对监控后端作选择,支持多监控任务、可选监控指标,且支持用户获取Pod的label标签信息。监控信息已适配Prometheus格式,可以通过调用Prometheus接口查看监控数据。
  • 使用约束 仅支持在v1.19及以上版本的CCE Turbo集群中安装此插件,插件实例仅支持部署在X86/ARM架构的HCE 2.0节点(1.4.5及以上版本的插件支持)或X86架构的EulerOS的节点上。 支持节点使用Containerd或Docker容器引擎。其中Containerd节点可实时跟踪Pod更新,Docker节点以轮询方式查询,非实时更新。 仅支持统计CCE Turbo集群安全容器(容器运行时为kata)以及普通容器(容器运行时为runc)的流量。 安装插件后默认将不进行流量监控,用户需通过创建MonitorPolicy来配置监控任务进行流量监控。 不支持HostNetwork类型Pod监控。 安装时请确保节点有足够的资源安装本插件。 监控标签及用户标签的来源必须为新创建Pod时就具有的。 用户指定的标签最多5个标签(1.3.4版本后最多支持10个标签),且不可以指定系统使用的label用作用户指定label。系统使用lable包括:pod、task、ipfamily、srcip、dstip、srcport、dstport、protocol。 HCE 2.0 x86节点不支持tcp drop监控项。
  • 极速文件存储介绍 CCE支持将极速文件存储(SFS Turbo)创建的存储卷挂载到容器的某一路径下,以满足数据持久化的需求。极速文件存储具有按需申请,快速供给,弹性扩展,方便灵活等特点,适用于海量小文件业务,例如DevOps、容器微服务、企业办公等应用场景。 SFS Turbo为用户提供一个完全托管的共享文件存储,能够弹性伸缩至320TB规模,具备高可用性和持久性,为海量的小文件、低延迟高IOPS型应用提供有力支持。 符合标准文件协议:用户可以将文件系统挂载给服务器,像使用本地文件目录一样。 数据共享:多台服务器可挂载相同的文件系统,数据可以共享操作和访问。 私有网络:数据访问必须在数据中心内部网络中。 安全隔离:直接使用云上现有IaaS服务构建独享的云文件存储,为租户提供数据隔离保护和IOPS性能保障。 应用场景:适用于多读多写(ReadWriteMany)场景下的各种工作负载(Deployment/StatefulSet)、守护进程集(DaemonSet)和普通任务(Job)使用,主要面向高性能网站、日志存储、DevOps、企业办公等场景。
  • 使用场景 根据使用场景不同,云硬盘类型的存储支持以下挂载方式: 通过静态存储卷使用已有云硬盘:即静态创建的方式,需要先使用已有的云硬盘创建PV,然后通过PVC在工作负载中挂载存储。适用于已有可用的底层存储或底层存储需要包周期的场景。 通过动态存储卷使用云硬盘:即动态创建的方式,无需预先创建云硬盘,在创建PVC时通过指定存储类(StorageClass),即可自动创建云硬盘和对应的PV对象。适用于无可用的底层存储,需要新创建的场景。 有状态负载动态挂载云硬盘存储:仅有状态工作负载支持,可以为每一个Pod关联一个独有的PVC及PV,当Pod被重新调度后,仍然能够根据该PVC名称挂载原有的数据。适用于多实例的有状态工作负载。
  • 云硬盘性能规格 云硬盘性能的主要指标包括: IOPS:云硬盘每秒进行读写的操作次数。 吞吐量:云硬盘每秒成功传送的数据量,即读取和写入的数据量。 IO读写时延:云硬盘连续两次进行读写操作所需要的最小时间间隔。 表1 云硬盘性能规格 参数 极速型SSD V2 通用型SSD V2 极速型SSD 通用SSD 超高IO 高IO 云硬盘最大容量(GiB) 系统盘:1024 数据盘:32768 系统盘:1024 数据盘:32768 系统盘:1024 数据盘:32768 系统盘:1024 数据盘:32768 系统盘:1024 数据盘:32768 系统盘:1024 数据盘:32768 最大IOPS 256000 128000 128000 20000 50000 5000 最大吞吐量(MiB/s) 4000 1000 1000 250 350 150 IOPS突发上限 NA NA 64000 8000 16000 5000 云硬盘IOPS性能计算公式 IOPS值由用户预配置,范围为100~256000,具体可配置值≤(1000*容量(GiB)) IOPS值由用户预配置,范围为3000~128000,具体可配置值≤(500*容量(GiB)) IOPS = min (128000, 1800 + 50 × 容量) IOPS=min (20000, 1800 + 12 × 容量) IOPS = min (50000, 1800 + 50 × 容量) IOPS = min (5000, 1800 + 8 × 容量) 云硬盘吞吐量性能计算公式(MiB/s) 吞吐量≤min(4000,预配置IOPS/16) 吞吐量值由用户配置,范围为125~1000,具体可配置值≤(IOPS/4) 吞吐量 = min (1000, 120 + 0.5 × 容量) 吞吐量 = min (250, 100 + 0.5 × 容量) 吞吐量 = min (350, 120 + 0.5 × 容量) 吞吐量 = min (150, 100 + 0.15 × 容量) 单队列访问时延(ms) 亚毫秒级 1 亚毫秒级 1 1 1~ 3 API名称 ESSD2 GPSSD2 ESSD GPSSD SSD SAS 关于云硬盘性能的详细介绍,请以磁盘类型及性能介绍为准。
  • 配置Ingress超时时间 表5 配置Ingress重定向规则注解 参数 类型 描述 支持的集群版本 kubernetes.io/elb.keepalive_timeout String 客户端连接空闲超时时间,在超过keepalive_timeout时长一直没有请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。 取值: 若为TCP协议,取值范围为(10-4000s)默认值为300s。 若为HTTP/HTTPS协议,取值范围为(0-4000s)默认值为60s。 UDP监听器不支持此字段。 独享型ELB:v1.19.16-r30、v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上 共享型ELB:v1.23.13-r0、v1.25.8-r0、v1.27.5-r0、v1.28.3-r0及以上版本 kubernetes.io/elb.client_timeout String 等待客户端请求超时时间,包括两种情况: 读取整个客户端请求头的超时时长:如果客户端未在超时时长内发送完整个请求头,则请求将被中断 两个连续body体的数据包到达LB的时间间隔,超出client_timeout将会断开连接。 取值范围为1-300s,默认值为60s。 使用说明:仅协议为HTTP/HTTPS的监听器支持该字段。 最小值:1 最大值:300 缺省值:60 独享型ELB:v1.19.16-r30、v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上 共享型ELB:v1.23.13-r0、v1.25.8-r0、v1.27.5-r0、v1.28.3-r0及以上版本 kubernetes.io/elb.member_timeout String 等待后端服务器响应超时时间。请求转发后端服务器后,在等待超时member_timeout时长没有响应,负载均衡将终止等待,并返回 HTTP504错误码。 取值:1-300s,默认为60s。 使用说明:仅支持协议为HTTP/HTTPS的监听器。 最小值:1 最大值:300 缺省值:60 独享型ELB:v1.19.16-r30、v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上 共享型ELB:v1.23.13-r0、v1.25.8-r0、v1.27.5-r0、v1.28.3-r0及以上版本 具体使用场景和说明请参见ELB Ingress配置超时时间。
  • 配置自定义监听端口 当前支持Ingress配置自定义监听端口。通过该方式,可以将服务同时暴露80端口和443端口。 表8 自定义监听端口注解 参数 类型 描述 支持的集群版本 kubernetes.io/elb.listen-ports String 为同一个Ingress创建多个监听端口,端口号范围为1~65535。 参数值为JSON格式的字符串,示例如下: kubernetes.io/elb.listen-ports: '[{"HTTP":80},{"HTTPS":443}]' 仅支持同时配置HTTP和HTTPS协议的监听端口。 仅支持新建Ingress场景,且配置多个监听端口后annotation不支持修改和删除。 同时指定多监听器(kubernetes.io/elb.listen-ports)和单监听器(kubernetes.io/elb.port)配置时,多监听器优先级更高。 Ingress内配置项对多个监听器同时生效,如黑白名单配置、超时时间配置。 不支持高级转发策略。 v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本 以使用已有ELB为例,配置示例如下: apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: kubernetes.io/elb.id: 2c623150-17bf-45f1-ae6f-384b036f547e # 已有ELB的ID kubernetes.io/elb.class: performance # ELB的类型 kubernetes.io/elb.listen-ports: '[{"HTTP": 80},{"HTTPS": 443}]' # 多监听器配置 kubernetes.io/elb.tls-certificate-ids: 6cfb43c9de1a41a18478b868e34b0a82,6cfb43c9de1a41a18478b868e34b0a82 # HTTPS证书配置 name: test-https namespace: default spec: ingressClassName: cce rules: - host: xxx.com http: paths: - backend: service: name: test port: number: 8888 path: / pathType: ImplementationSpecific property: ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
  • 开启gzip压缩 表9 开启gzip压缩注解 参数 类型 描述 支持的集群版本 kubernetes.io/elb.gzip-enabled String LoadBalancer支持开启数据压缩,通过数据压缩可缩小传输文件大小,提升文件传输效率减少带宽消耗。 开启将对特定文件类型进行压缩,关闭则不会对任何文件类型进行压缩。在默认情况下数据压缩为关闭。 支持的压缩类型如下: Brotli支持压缩所有类型。 Gzip支持压缩的类型包括:text/xml text/plain text/css application/javascript application/x-javascript application/rss+xml application/atom+xml application/xml application/json。 仅独享型ELB的HTTP/HTTPS类型监听器支持配置。删除开启数据压缩高级配置或对应的annotation,将不会对ELB侧配置进行修改。 v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本 具体使用场景和说明请参见ELB Ingress配置gzip数据压缩。
  • 自动创建ELB的参数说明 表10 elb.autocreate字段数据结构说明 参数 是否必填 参数类型 描述 name 否 String 自动创建的负载均衡的名称。 取值范围:只能由中文、英文字母、数字、下划线、中划线、点组成,且长度范围为1-64个字符。 默认名称:cce-lb+service.UID type 否 String 负载均衡实例网络类型,公网或者私网。 public:公网型负载均衡 inner:私网型负载均衡 默认类型:inner bandwidth_name 公网型负载均衡必填 String 带宽的名称,默认值为:cce-bandwidth-******。 取值范围:只能由中文、英文字母、数字、下划线、中划线、点组成,且长度范围为1-64个字符。 bandwidth_chargemode 否 String 带宽付费模式。 bandwidth:按带宽 traffic:按流量 默认类型:bandwidth bandwidth_size 公网型负载均衡必填 Integer 带宽大小,默认1Mbit/s~2000Mbit/s,请根据Region带宽支持范围设置。 调整带宽时的最小单位会根据带宽范围不同存在差异。 小于等于300Mbit/s:默认最小单位为1Mbit/s。 300Mbit/s~1000Mbit/s:默认最小单位为50Mbit/s。 大于1000Mbit/s:默认最小单位为500Mbit/s。 bandwidth_sharetype 公网型负载均衡必填 String 带宽共享方式。 PER:独享带宽 eip_type 公网型负载均衡必填 String 弹性公网IP类型。 5_telcom:电信 5_union:联通 5_bgp:全动态BGP 5_sbgp:静态BGP 具体类型以各区域配置为准,详情请参见弹性公网IP控制台。 vip_subnet_cidr_id 否 String 指定ELB所在的子网,该子网必须属于集群所在的VPC。 如不指定,则ELB与集群在同一个子网。 仅v1.21及以上版本的集群支持指定该字段。 vip_address 否 String 负载均衡器的内网IP。仅支持指定IPv4地址,不支持指定IPv6地址。 该IP必须为ELB所在子网网段中的IP。若不指定,自动从ELB所在子网网段中生成一个IP地址。 仅v1.23.11-r0、v1.25.6-r0、v1.27.3-r0及以上版本集群支持指定该字段。 available_zone 是 Array of strings 负载均衡所在可用区。 可以通过查询可用区列表获取所有支持的可用区。 独享型负载均衡器独有字段。 l4_flavor_name 是 String 四层负载均衡实例规格名称。 可以通过查询规格列表获取所有支持的类型。 弹性规格:适用于业务用量波动较大的场景,按实际使用量收取每小时使用的容量费用。v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上版本集群支持使用弹性规格。 固定规格:适用于业务用量较为稳定的场景,按固定规格折算收取每小时使用的容量费用。 独享型负载均衡器独有字段。 l7_flavor_name 否 String 七层负载均衡实例规格名称。 可以通过查询规格列表获取所有支持的类型。 弹性规格:适用于业务用量波动较大的场景,按实际使用量收取每小时使用的容量费用。v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上版本集群支持使用弹性规格。 固定规格:适用于业务用量较为稳定的场景,按固定规格折算收取每小时使用的容量费用。 独享型负载均衡器独有字段,必须与l4_flavor_name对应规格的类型一致,即都为弹性规格或都为固定规格。 elb_virsubnet_ids 否 Array of strings 负载均衡后端所在子网,不填默认为集群子网。不同实例规格将占用不同数量子网IP,不建议使用其他资源(如集群,节点等)的子网网段。 独享型负载均衡器独有字段。 示例: "elb_virsubnet_ids": [ "14567f27-8ae4-42b8-ae47-9f847a4690dd" ] ipv6_vip_virsubnet_id 否 String 双栈类型负载均衡器所在子网的IPv6网络ID,需要对应的子网开启IPv6,仅使用双栈集群时需填写。 独享型负载均衡器独有字段。
  • 使用HTTP/2 表2 使用HTTP/2注解 参数 类型 描述 支持的集群版本 kubernetes.io/elb.http2-enable String 表示HTTP/2功能的开启状态。开启后,可提升客户端与LB间的访问性能,但LB与后端服务器间仍采用HTTP1.X协议。 取值范围: true:开启HTTP/2功能; false:关闭HTTP/2功能(默认为关闭状态)。 注意:只有当监听器的协议为HTTPS时,才支持开启或关闭HTTP/2功能。当监听器的协议为HTTP时,该字段无效,默认将其设置为false。 v1.23.13-r0、v1.25.8-r0、v1.27.5-r0、v1.28.3-r0及以上版本 具体使用场景和说明请参见ELB Ingress配置HTTP/2。
  • Virtual Kubelet可分配资源监控影响说明 安装Virtual Kubelet插件后,系统会将CCI的资源作为集群节点资源。从监控的角度,相当于引入一个超大节点,此时在CCE集群监控界面上可分配资源使用率会把CCI的资源放在一起计算。如下所示,刚安装Virtual Kubelet插件后,CPU/内存的可分配率剧烈下降。 图2 集群监控 您可以在节点管理界面或 AOM 中查看具体节点的分配率。 图3 在AOM中查看节点资源可分配率
  • 卸载插件 登录CCE控制台,进入集群,在左侧导航栏选择“插件管理”,在右侧“已安装插件”页签下,单击virtual kubelet下的“卸载”。 在弹出的窗口中,单击“是”,可卸载该插件。(卸载插件会自动删除CCI侧的所有资源,以确保不会有资源残留造成额外计费) 由于virtual-kubelet插件卸载时会在集群中启动Job用于清理资源,卸载插件时请保证集群中至少有一个可以调度的节点,否则卸载插件会失败。若已经因无可调度节点造成插件卸载失败,需要在有可调度节点后重新单击插件卸载。 如果在未卸载virtual-kubelet插件的情况下直接删除集群,CCI侧的资源不会被自动清理,会导致CCI侧资源残留,可能会造成额外计费。因此请确保完成以下任意一操作。 在删除集群前先卸载virtual-kubelet插件。 在直接删除集群后登录CCI控制台删除名为cce-burst-${CLUSTER_ID}的命名空间。 集群休眠时CCI侧正在运行的实例不会自动停止,会持续运行并计费。因此如不需要实例继续运行,请确保在集群休眠前将弹性到CCI的负载实例数缩至0。
  • 通过标签labels设置弹性策略 您成功安装virtual-kubelet插件后,在工作负载中添加virtual-kubelet.io/burst-to-cci这个标签即可设置弹性到CCI。 apiVersion: apps/v1 kind: Deployment metadata: name: test namespace: default labels: virtual-kubelet.io/burst-to-cci: 'auto' # 弹性到CCI spec: replicas: 2 selector: matchLabels: app: test template: metadata: labels: app: test spec: containers: - image: 'nginx:perl' name: container-0 resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi volumeMounts: [] imagePullSecrets: - name: default-secret 创建弹性至CCI的负载时需要在工作负载或Pod的labels中添加如下字段: virtual-kubelet.io/burst-to-cci: "auto" 其中,value值支持以下选项: auto:根据用户集群内调度器实际打分结果自动决定是否弹性至CCI,其中在TaintToleration算法上会优先选择调度到CCE节点。 localPrefer:集群资源不足时,将Pod部署到CCI。 enforce:强制调度至CCI。 off:不调度至CCI。
  • 使用profile管理线下IDC和云上分配数量 使用profile配置管理集群内pod,通过labelSelector类方式关联profile和pod,并配置关联pod的分配策略,实现pod在线下IDC和云上的分配或数量限制。 约束与限制 客户可通过Profile配置管理集群内pod策略,仍兼容原有pod的label内burst-to-cci的配置方式,优先级比profile高。 localPrefer不可同时配置local、cci。 auto和localPrefer策略允许关联未被profile关联过的pod,enforce策略不允许关联未被profile关联过的pod。 目前profile在配置localPrefer策略下,为避免全局性问题,在极限场景下限制local数量的配置可能会失效。 在deployment滚动升级场景下,推荐配置尽可能小的maxSurge值(如直接配置为0),避免出现升级时限制maxNum的区域调度量少于预期的现象。 pod只能关联一个profile,即关联度最大的profile。若pod创建后,对其label进行修改导致与原profile不匹配,pod会重新选择关联度最大的profile进行关联。关联度最大的profile确定方法: 根据profile中obejectLables计算labelSelector内matchLabels的数量及matchExpression的数量之和,和最大的profile即为pod关联度最大的profile; 若出现和相同的profile,选择profile的name字母序最小的profile为pod关联度最大的profile。 不支持使用log-agent插件采集profile管理的负载日志。 使用方式 配置local maxNum和scaleDownPriority apiVersion: scheduling.cci.io/v1 kind: ScheduleProfile metadata: name: test-cci-profile namespace: default spec: objectLabels: matchLabels: app: nginx strategy: localPrefer location: local: maxNum: 20 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 10 cci: {} status: phase: initialized restrict: local: 20 # restrict内随着location内配置进行填写,即不会同时出现 local/cci used: local: 20 cci: 0 配置cci maxNum和scaleDownPriority apiVersion: scheduling.cci.io/v1 kind: ScheduleProfile metadata: name: test-cci-profile namespace: default spec: objectLabels: matchLabels: app: nginx strategy: localPrefer location: local: {} cci: maxNum: 20 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 10 status: phase: initialized restrict: cci: 20 # restrict内随着location内配置进行填写,即不会同时出现 local/cci used: local: 0 cci: 20
  • 版本记录 表1 CCE突发弹性引擎(对接CCI)插件版本记录 插件版本 支持的集群版本 更新特性 1.3.57 v1.21 v1.23 v1.25 v1.27 v1.28 适配CCE v1.28集群 1.3.54 v1.21 v1.23 v1.25 v1.27 修复部分问题。 1.3.48 v1.21 v1.23 v1.25 v1.27 支持v1.25、v1.27版本集群 支持JuiceFS类型的存储 1.3.44 v1.17 v1.19 v1.21 v1.23 支持Pod配置全域弹性公网IP 1.3.35 v1.17 v1.19 v1.21 v1.23 支持原地升级镜像 支持ReadinessGates 1.3.25 v1.17 v1.19 v1.21 v1.23 支持DownwardAPI Volume 支持Projected Volume 支持自定义StorageClass 1.3.19 v1.17 v1.19 v1.21 v1.23 支持schedule profile 1.3.7 v1.17 v1.19 v1.21 v1.23 支持v1.21、v1.23版本集群 1.2.12 v1.13 v1.15 v1.17 v1.19 新增了部分metrics指标 支持HPA与CustomedHPA 支持将弹性到CCI的Pod中的hostPath转换为其它类型存储 修复Kubernetes Dashboard无法使用终端问题 1.2.5 v1.13 v1.15 v1.17 v1.19 支持CCE Turbo集群 自动清理CCI中不再被Pod依赖的资源 支持配置Requests与Limits不相等,弹性到CCI时的资源申请量以Limits为准 修复CCI命名空间不存在时插件卸载失败问题 增加对Pod规格超过CCI限制的创建请求的拦截 1.2.0 v1.13 v1.15 v1.17 v1.19 支持v1.19版本集群 支持SFS、SFS Turbo类型存储 支持CronJob 支持配置envFrom 日志文件自动转储 屏蔽TCPSocket类型健康检查 支持配置资源标签(pod-tag) 提升了性能和可靠性 修复了一些已知问题 1.0.5 v1.13 v1.15 v1.17 支持v1.17版本集群
  • 插件简介 云原生日志采集插件(log-agent)是基于开源fluent-bit和opentelemetry构建的云原生日志、K8s事件采集插件。log-agent支持基于CRD的日志采集策略,可以根据您配置的策略规则,对集群中的容器标准输出日志、容器文件日志及K8s事件日志进行采集与转发。同时支持上报K8s事件到AOM,用于配置事件告警,默认上报所有异常事件和部分正常事件。采集日志的详细使用方法请参见收集容器日志。
  • 权限说明 云原生日志采集插件中的fluent-bit组件会根据用户的采集配置,读取容器标准输出、容器内文件日志并采集。 fluent-bit组件运行需要以下权限: CAP_DAC_OVERRIDE:忽略文件的 DAC 访问限制。 CAP_FOWNER:忽略文件属主 ID 必须和进程用户 ID 相匹配的限制。 DAC_READ_SEARCH:忽略文件读及目录搜索的 DAC 访问限制。 SYS_PTRACE:允许跟踪任何进程。
  • 安装插件 登录CCE控制台,单击集群名称进入集群,在左侧导航栏中选择“插件中心”,在右侧找到云原生日志采集插件,单击“安装”。 在安装插件页面,设置“规格配置”。 表1 插件规格配置 参数 参数说明 实例数 选择上方插件规格后,显示插件中的实例数。 选择“自定义”规格时,您可根据需求调整插件实例数。 容器 log-agent插件包含以下容器,您可根据需求自定义调整规格: fluent-bit:日志收集器,以DaemonSet形式安装在每个节点。 log-operator:负责解析及更新日志规则的组件。 otel-collector:负责集中式日志转发的组件,将fluent-bit收集的日志转发到LTS。 完成以上配置后,单击“安装”。
  • 什么是区域、可用区? 我们用区域和可用区来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。
  • 如何选择区域? 选择区域时,您需要考虑以下几个因素: 地理位置 一般情况下,建议就近选择靠近您或者您的目标用户的区域,这样可以减少网络时延,提高访问速度。 在除中国大陆以外的亚太地区有业务的用户,可以选择“中国-香港”、“亚太-曼谷”或“亚太-新加坡”区域。 在非洲地区有业务的用户,可以选择“非洲-约翰内斯堡”区域。 在拉丁美洲地区有业务的用户,可以选择“拉美-圣地亚哥”区域。 资源的价格 不同区域的资源价格可能有差异,请参见华为云服务价格详情。
  • 修订记录 发布日期 修改记录 2022-07-16 第十三次正式发布。 新增常见问题: 威胁检测服务 如何收费?、 威胁检测 服务支持退订吗?、威胁检测服务到期后,如何续费?。 2022-03-08 第十二次正式发布。 修改什么是威胁检测服务?。 2022-01-14 第十一次正式发布。 增加检查VPC能力,优化内容描述。 2021-12-03 第十次正式发布。 新增常见问题:如何通过主账号对子账号赋予MTD权限? 删除:威胁检测服务是否收费,能否免费使用? 删除:购买威胁检测服务(MTD)后,使用其他业务/服务出现token校验不通过怎么处理? 2021-11-30 第九次正式发布。 新增常见问题:威胁检测服务可以跨区域使用吗? 2021-11-17 第八次正式发布。 删除如何创建追踪器。 2021-09-29 第七次正式发布。 新增常见问题:什么是DGA 域名 生成算法? 2021-08-23 第六次正式发布。 新增:购买MTD服务后,关闭所有日志数据源开关是否会计费? 2021-07-10 第五次正式发布。 正式版本上线,修改章节如下: 什么是威胁检测服务? 威胁检测服务的检测源头是什么? 如何编辑Plaintext格式的对象? 威胁检测服务购买后如何使用? 威胁检测服务可以检测哪些风险? 威胁检测服务是否支持自动防御措施? 2021-07-02 第四次正式发布。 修改威胁检测服务是否收费,能否免费使用?章节。 2021-05-27 第三次正式发布。 新增用户使用过程出现的问题和一些常见问题,如下: 如何编辑Plaintext格式的对象? 购买威胁检测服务(MTD)后,使用其他业务/服务出现token校验不通过怎么处理? 威胁检测服务是否收费,能否免费使用? 威胁检测服务购买后如何使用? 威胁检测服务可以检测哪些风险? 威胁检测服务是否支持自动防御措施? 2021-04-27 第二次正式发布。 新增如何配置追踪器。 2021-01-20 第一次正式发布。
  • UserPermissions 发现与历史情报相似的恶意IP尝试调用一个API,该API通常用于在您的账户中添加、修改或删除 IAM 用户、组或策略。 严重级别:非固定,MTD根据告警实际威胁程度定级。 数据源: CTS 日志。 此调查结果通知您,发现一个与历史情报相似的恶意IP尝试调用API,该API通常用于在您的账户中添加、修改或删除IAM用户、组或策略。 修复建议: 如果此IP为您正常使用IP,请添加到MTD的白名单中。
  • NetworkPermissions 发现与历史情报相似的恶意IP尝试调用一个API,该API通常用于更改您的账户中的安全组、路由和ACL的网络访问权限。 严重级别:非固定,MTD根据告警实际威胁程度定级。 数据源:CTS日志。 此调查结果通知您,发现与历史情报相似的恶意IP尝试调用一个API,该API通常用于更改您的账户中的安全组、路由和ACL的网络访问权限。 修复建议: 如果此IP为您正常使用IP,请添加到MTD的白名单中。
  • ResourcePermissions 发现与历史情报相似的恶意IP尝试调用一个API,该API通常用于更改您的账户中各种资源的安全访问策略。 严重级别:非固定,MTD根据告警实际威胁程度定级。 数据源:CTS日志。 此调查结果通知您,发现一个与历史情报相似的恶意IP尝试调用API,该API通常用于更改您的账户中各种资源的安全访问策略。 修复建议: 如果此IP为您正常使用IP,请添加到MTD的白名单中。
  • 示例流程 图1 给用户授权服务权限流程 创建用户组并授权 在 统一身份认证 控制台创建用户组,并授予MTD权限。 创建用户并加入用户组 在统一身份认证控制台创建用户,并将其加入1中创建的用户组。 创建自定义策略 创建自定义策略。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择除MTD外(假设当前策略仅包含MTD)的任一服务,若提示权限不足,表示MTD已生效。
共100000条