华为云用户手册

  • 指标清单 Pod视图使用的指标清单如下: 表4 Pod视图指标清单 指标 指标类型 说明 kube_pod_container_status_running gauge 容器当前是否在运行中的状态 kube_pod_container_info gauge Pod中的容器信息 kube_pod_status_phase gauge Pod当前的阶段 kube_pod_container_status_restarts_total counter 容器重启次数 container_cpu_usage_seconds_total counter 容器CPU累计使用时间 kube_pod_container_resource_requests gauge 容器请求的请求资源数 container_spec_cpu_quota gauge 容器的CPU配额 container_memory_working_set_bytes gauge 容器内存使用量 container_spec_memory_limit_bytes gauge 容器内存限制量 container_cpu_cfs_throttled_periods_total counter 容器限制周期间隔数 container_cpu_cfs_periods_total counter 容器经过强制限制的周期间隔数 container_network_receive_bytes_total counter 容器接收字节的累计计数 container_network_transmit_bytes_total counter 容器传输字节的累计计数 container_network_receive_packets_total counter 容器接收数据包的累计计数 container_network_transmit_packets_total counter 容器传输数据包的累计计数 container_network_receive_packets_dropped_total counter 容器接收丢失的数据包的累计计数 container_network_transmit_packets_dropped_total counter 容器传输丢失的数据包的累计计数 container_fs_reads_total counter 容器已完成磁盘读取的累计计数 container_fs_writes_total counter 容器已完成磁盘写入的累计计数 container_fs_reads_bytes_total counter 容器读取的累计字节数 container_fs_writes_bytes_total counter 容器写入的累计在节数 container_fs_usage_bytes gauge 文件系统上容器已经使用的字节数 container_fs_limit_bytes gauge 文件系统上容器限制的字节数
  • 指标说明 Pod视图暴露的指标包括Pod资源指标、Pod网络指标和Pod磁盘指标,具体说明如下: 图1 Pod资源指标 表1 Pod资源指标说明 指标名称 单位 说明 容器数 个 Pod中的容器总数 运行中容器数 个 Pod中正在运行的容器个数 Pod状态 个 处在不同状态下的Pod个数 容器重启次数 次 容器被重启的次数 CPU使用量 Cores Pod CPU使用量 CPU 有效率&使用率 百分比 有效率:使用量/请求量;使用率:使用量/总量 内存使用量 字节 内存使用量 内存 有效率&使用率 百分比 有效率:使用量/请求量;使用率:使用量/总量 CPU Throttling 百分比 CPU节流周期限制率 图2 Pod网络指标 表2 Pod网络指标说明 指标名称 单位 说明 网络接收速 字节/秒 容器每秒接收的字节数 网络发送速率 字节/秒 容器每秒发送的字节数 接收数据包速率 个/秒 容器每秒接收数据包数 发送数据包速 个/秒 容器每秒发送数据包数 丢包速率(接收) 字节/秒 容器每秒接收的数据丢包数 丢包速率(发送) 字节/秒 容器每秒发送的数据丢包数 图3 Pod磁盘指标 表3 Pod磁盘指标说明 指标名称 单位 说明 Pod容器磁盘读写IO速率(读+写) 次数/秒 Pod磁盘每秒读写IO次数 Pod磁盘读写吞吐量(读+写) 字节/秒 Pod磁盘每秒读写字节数 容器磁盘读写IO速率(读+写) 次数/秒 容器磁盘每秒读写IO次数 容器磁盘读写吞吐量(读+写) 字节/秒 容器磁盘每秒读写字节数 文件系统使用率 百分比 文件系统的使用率 文件系统使用量 字节 文件系统已经使用的字节数
  • 前提条件 使用HPA需要安装能够提供Metrics API的插件,您可根据集群版本和实际需求选择其中之一: Kubernetes Metrics Server:提供基础资源使用指标,例如容器CPU和内存使用率。所有集群版本均可安装。 云原生监控插件:该插件支持v1.17及以后的集群版本。 根据基础资源指标进行弹性伸缩:需将Prometheus注册为Metrics API的服务,详见通过Metrics API提供资源指标。 根据自定义指标进行弹性伸缩:需要将自定义指标聚合到Kubernetes API Server,详情请参见使用自定义指标创建HPA策略。 Prometheus(停止维护):需将Prometheus注册为Metrics API的服务,详见通过Metrics API提供资源指标。该插件仅支持v1.21及之前的集群版本。
  • 使用云原生日志采集插件采集日志 启用云原生日志采集插件日志采集功能 在集群创建时启用云原生日志采集插件日志采集 登录云容器引擎(CCE)控制台。 在控制台上方导航栏,单击“购买集群”。 在“插件选择”页面中,选择“云原生日志采集插件”。 单击右下角“下一步:插件配置”,根据需求勾选以下配置。 容器日志:开启后,将创建名为default-stdout的日志策略,并上报所有命名空间下的标准输出到 云日志 服务(LTS)。 Kubernetes事件:开启后,将创建名为default-event的日志策略,并上报所有命名空间下的Kubernetes事件到云日志服务(LTS)。 配置完成后,单击右下角“下一步:确认配置”,在弹出的窗口中单击“确定”,完成创建。 为已有集群启用CCE 云原生日志采集插件日志采集 登录云容器引擎(CCE)控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 未进行授权的用户需要先授权,已授权的用户直接跳转下一步。 在弹出框中单击“确认授权”。 页面单击“一键开启”,等待约30秒后,页面自动跳转。 采集容器标准输出:开启后,将创建名为default-stdout的日志策略,并上报所有命名空间下的标准输出到云日志服务(LTS)。 采集Kubernetes事件:开启后,将创建名为default-event的日志策略,并上报所有命名空间下的Kubernetes事件到云日志服务(LTS)。 查看并配置日志采集策略。 登录云容器引擎(CCE)控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 右上角单击“日志采集策略”,将显示当前集群所有上报LTS的日志策略。 图1 查看日志策略 若启用日志采集功能时勾选了采集容器标准输出和采集Kubernetes事件,将创建两个日志策略,并对接默认的LTS日志组、日志流。 default-stdout 采集标准输出。默认日志组:k8s-logs-{集群ID};默认日志流:stdout-{集群ID} default-event 采集Kubernetes事件。默认日志组:k8s-logs-{集群ID};默认日志流:event-{集群ID} 创建日志策略:单击上方“创建日志策略”,输入要采集的配置信息。 策略模板:若启用日志采集功能时未勾选采集容器标准输出和采集Kubernetes事件,或者删除了对应的日志策略,可通过该方式重新创建默认日志策略。 图2 使用策略模板 自定义策略:用于配置自定义日志策略。 图3 自定义策略 表1 自定义策略参数说明 参数 说明 日志类型 指定采集哪类日志。 容器标准输出:用于采集容器标准输出,可以按命名空间、工作负载名称、实例标签配置采集策略。 容器文件路径:用于采集容器内的日志,可以按工作负载和实例标签配置采集策略。 日志源 采集哪些容器的日志。 所有容器:可以指定采集某个命名空间的所有容器,如不指定则采集所有命名空间的容器。 指定工作负载:指定采集哪些工作负载容器的日志,可以指定采集工作负载中具体容器的日志,如不指定则采集所有容器的日志。 指定实例标签:根据标签指定采集哪些工作负载容器的日志,可以指定采集工作负载中具体容器的日志,如不指定则采集所有容器的日志。 路径配置 用于配置需要采集的日志路径。 文件路径必须以/ 开头,只能包含大写字母、小写字母、数字或特殊字符-_/*?,且长度不能超过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 编辑日志策略:单击“编辑”按钮,可对已经存在的日志策略进行修改。 删除日志策略:单击“删除”按钮,可对已经存在的日志策略进行删除。 查看日志。 登录云容器引擎(CCE)控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 日志中心下有3个页签,支持不同类型日志查看。 容器日志:显示默认日志组(k8s-log-{集群ID})下默认日志流(stdout-{集群ID})中的所有日志数据,支持通过工作负载搜索。 图4 容器日志查询 Kubernetes事件:显示默认日志组(k8s-log-{集群ID})下默认日志流(event-{集群ID})中的所有日志数据,用于查询集群产生的Kubernetes事件。 全局日志查询:支持查看所有日志组日志流下的日志信息。可通过选择日志流查看所选日志流中的日志信息,默认会选择集群默认日志组(k8s-log-{集群ID}),可通过单击切换日志组右侧的图标切换其他日志组。 图5 全局日志查询 单击右上角“日志采集策略”,单击“查看日志”,可以直接跳转至对应日志策略的日志列表。 图6 查看日志
  • 常见问题处理 插件中除log-operator外组件均未就绪,且出现异常事件“实例挂卷失败”。 解决方案:请查看log-operator日志,安装插件时,其余组件所需的配置文件需要log-operator生成,log-operator生成配置出错,会导致所有组件无法正常启动。 日志信息如下: MountVolume.SetUp failed for volume "otel-collector-config-vol":configmap "log-agent-otel-collector-config" not found log-operator标准输出报错:Failed to create log group, the number of log groups exceeds the quota 示例: 2023/05/05 12:17:20.799 [E] call 3 times failed, resion: create group failed, projectID: xxx, groupName: k8s-log-xxx, err: create groups status code: 400, response: {"error_code":"LTS.0104","error_msg":"Failed to create log group, the number of log groups exceeds the quota"}, url: https://lts.cn-north-4.myhuaweicloud.com/v2/xxx/groups, process will retry after 45s 解决方案:LTS日志组有配额限制,如果出现该报错,请前往LTS下删除部分无用的日志组。限制详情见:日志组。 日志无法上报,otel组件标准输出报错:log's quota has full 解决方案: 云日志服务(LTS)有免费赠送的额度,超出后将收费,报错说明免费额度已用完,如果需要继续使用,请前往云日志服务控制台“配置中心”,打开“超额继续采集日志”开关。 图7 配额设置 采集容器内日志,且采集目录配置了通配符,日志无法采集。 排查方法:请检查工作负载配置中Volume挂载情况,如果业务容器的数据目录是通过数据卷(Volume)挂载的,插件不支持采集它的父目录,需设置采集目录为完整的数据目录。例如/var/log/service目录是数据卷挂载的路径,则设置采集目录为/var/log或/var/log/*将采集不到该目录下的日志,需设置采集目录为/var/log/service。 解决方案:若日志生成目录为/application/logs/{应用名}/*.log,建议工作负载挂载Volume时,直接挂载/application/logs,日志策略中配置采集路径为/application/logs/*/*.log
  • 方法一:配置Pod Annotations监控自定义指标 当Pod的Annotations配置符合Prometheus采集规范的规则后,Prometheus会自动采集这些Pod暴露的指标。 如上所述的nginx:exporter提供的监控数据,其数据格式并不满足Prometheus的要求,需要将其转换成Prometheus需要的格式,可以使用nginx-prometheus-exporter来转换Nginx的指标,将nginx:exporter和nginx-prometheus-exporter部署到同一个Pod,并在部署时添加如下Annotations就可以自动被Prometheus采集监控指标。 kind: Deployment apiVersion: apps/v1 metadata: name: nginx-exporter namespace: default spec: replicas: 1 selector: matchLabels: app: nginx-exporter template: metadata: labels: app: nginx-exporter annotations: prometheus.io/scrape: "true" prometheus.io/port: "9113" prometheus.io/path: "/metrics" prometheus.io/scheme: "http" spec: containers: - name: container-0 image: 'nginx:exporter' # 替换为您上传到SWR的镜像地址 resources: limits: cpu: 250m memory: 512Mi requests: cpu: 250m memory: 512Mi - name: container-1 image: 'nginx/nginx-prometheus-exporter:0.9.0' command: - nginx-prometheus-exporter args: - '-nginx.scrape-uri=http://127.0.0.1:8080/stub_status' imagePullSecrets: - name: default-secret 其中 prometheus.io/scrape:表示是否需要prometheus采集Pod的监控数据,取值为true。 prometheus.io/port:表示采集监控数据接口的端口,由需要采集的应用决定。本示例中采集端口为9113。 prometheus.io/path:表示采集监控数据接口的URL,如不配置则默认为“/metrics”。 prometheus.io/scheme:表示采集的协议,值可以填写http或https。 应用部署成功后,访问云原生监控插件,查询自定义监控指标。 图1 访问云原生监控插件 可以查询到nginx相关的自定义监控指标,通过job名称可以判断出是根据Pod配置上报的。 nginx_connections_accepted{cluster="2048c170-8359-11ee-9527-0255ac1000cf", cluster_category="CCE", cluster_name="cce-test", container="container-0", instance="10.0.0.46:9113", job="monitoring/kubernetes-pods", kubernetes_namespace="default", kubernetes_pod="nginx-exporter-77bf4d4948-zsb59", namespace="default", pod="nginx-exporter-77bf4d4948-zsb59", prometheus="monitoring/server"} 图2 查看监控指标
  • 方法二:配置Service Annotations监控自定义指标 当Service的Annotations配置符合Prometheus采集规范的规则后,Prometheus会自动采集这些Service暴露的指标。 Service Annotations使用方法和Pod Annotations基本相同,主要是采集的指标的适用场景不同,Pod Annotations更关注Pod的资源使用情况,Service Annotations侧重于对该业务的请求等指标。 部署示例应用如下: kind: Deployment apiVersion: apps/v1 metadata: name: nginx-test namespace: default spec: replicas: 1 selector: matchLabels: app: nginx-test template: metadata: labels: app: nginx-test spec: containers: - name: container-0 image: 'nginx:exporter' # 替换为您上传到SWR的镜像地址 resources: limits: cpu: 250m memory: 512Mi requests: cpu: 250m memory: 512Mi - name: container-1 image: 'nginx/nginx-prometheus-exporter:0.9.0' command: - nginx-prometheus-exporter args: - '-nginx.scrape-uri=http://127.0.0.1:8080/stub_status' imagePullSecrets: - name: default-secret 部署示例Service如下: apiVersion: v1 kind: Service metadata: name: nginx-test labels: app: nginx-test namespace: default annotations: prometheus.io/scrape: "true" # 配置为 true 表示开启服务发现 prometheus.io/port: "9113" # 配置为采集指标暴露的端口号 prometheus.io/path: "/metrics" # 填写指标暴露的 URI 路径,一般是 /metrics spec: selector: app: nginx-test externalTrafficPolicy: Cluster ports: - name: cce-service-0 targetPort: 80 nodePort: 0 port: 8080 protocol: TCP - name: cce-service-1 protocol: TCP port: 9113 targetPort: 9113 type: NodePort 查看指标,通过Service名称可以判断出该指标是根据Service配置上报的。 nginx_connections_accepted{app="nginx-test", cluster="2048c170-8359-11ee-9527-0255ac1000cf", cluster_category="CCE", cluster_name="cce-test", instance="10.0.0.38:9113", job="nginx-test", kubernetes_namespace="default", kubernetes_service="nginx-test", namespace="default", pod="nginx-test-78cfb65889-gtv7z", prometheus="monitoring/server", service="nginx-test"} 图3 查看监控指标
  • 方法三:配置Pod Monitor监控自定义指标 云原生监控插件提供了基于PodMonitor与ServiceMonitor配置指标采集任务的能力。Prometheus Operator将watch的PodMonitor的变化,通过Prometheus的reload机制,将Prometheus的采集任务热更新至Prometheus的实例中。 Prometheus Operator定义的CRD资源github地址:https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/charts/crds/crds。 部署示例应用如下: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-test2 namespace: default spec: replicas: 1 selector: matchLabels: app: nginx-test2 template: metadata: labels: app: nginx-test2 spec: containers: - image: nginx:exporter # 替换为您上传到SWR的镜像地址 name: container-0 ports: - containerPort: 9113 # 指标暴露的端口号 name: nginx-test2 # 该名称是后续配置PodMonitor时相匹配的名称 protocol: TCP resources: limits: cpu: 250m memory: 300Mi requests: cpu: 100m memory: 100Mi - name: container-1 image: 'nginx/nginx-prometheus-exporter:0.9.0' command: - nginx-prometheus-exporter args: - '-nginx.scrape-uri=http://127.0.0.1:8080/stub_status' imagePullSecrets: - name: default-secret 配置Pod Monitor示例如下: apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: podmonitor-nginx # PodMonitor的名称 namespace: monitoring # 所属命名空间,建议使用monitoring spec: namespaceSelector: # 匹配工作负载所在的命名空间 matchNames: - default # 工作负载所属的命名空间 jobLabel: podmonitor-nginx podMetricsEndpoints: - interval: 15s path: /metrics # 工作负载暴露指标的路径 port: nginx-test2 # 工作负载暴露指标的port名称 tlsConfig: insecureSkipVerify: true selector: matchLabels: app: nginx-test2 # Pod携带的标签,能被选择器选中 查看指标,通过job名称可以判断出该指标是根据PodMonitor配置上报的。 nginx_connections_accepted{cluster="2048c170-8359-11ee-9527-0255ac1000cf", cluster_category="CCE", cluster_name="cce-test", container="container-0", endpoint="nginx-test2", instance="10.0.0.44:9113", job="monitoring/podmonitor-nginx", namespace="default", pod="nginx-test2-746b7f8fdd-krzfp", prometheus="monitoring/server"} 图4 查看监控指标
  • 方法四:配置Service Monitor监控自定义指标 云原生监控插件提供了基于PodMonitor与ServiceMonitor配置指标采集任务的能力。Prometheus Operator将watch的ServiceMonitor的变化,通过Prometheus的reload机制,将Prometheus的采集任务热更新至Prometheus的实例中。 Prometheus Operator定义的CRD资源github地址:https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/charts/crds/crds。 部署示例应用如下: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-test3 namespace: default spec: replicas: 1 selector: matchLabels: app: nginx-test3 template: metadata: labels: app: nginx-test3 spec: containers: - image: nginx:exporter # 替换为您上传到SWR的镜像地址 name: container-0 resources: limits: cpu: 250m memory: 300Mi requests: cpu: 100m memory: 100Mi - name: container-1 image: 'nginx/nginx-prometheus-exporter:0.9.0' command: - nginx-prometheus-exporter args: - '-nginx.scrape-uri=http://127.0.0.1:8080/stub_status' imagePullSecrets: - name: default-secret 部署示例Service如下: apiVersion: v1 kind: Service metadata: name: nginx-test3 labels: app: nginx-test3 namespace: default spec: selector: app: nginx-test3 externalTrafficPolicy: Cluster ports: - name: cce-service-0 targetPort: 80 nodePort: 0 port: 8080 protocol: TCP - name: servicemonitor-ports protocol: TCP port: 9113 targetPort: 9113 type: NodePort 配置Service Monitor示例如下: apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: servicemonitor-nginx namespace: monitoring spec: # 配置service中的暴露指标的port的名称 endpoints: - path: /metrics port: servicemonitor-ports jobLabel: servicemonitor-nginx # 采集任务的作用范围,如果不配置,默认为default namespaceSelector: matchNames: - default selector: matchLabels: app: nginx-test3 查看指标,通过endpoint名称可以判断出该指标是根据ServiceMonitor配置上报的。 nginx_connections_accepted{cluster="2048c170-8359-11ee-9527-0255ac1000cf", cluster_category="CCE", cluster_name="cce-test", endpoint="servicemonitor-ports", instance="10.0.0.47:9113", job="nginx-test3", namespace="default", pod="nginx-test3-6f8bccd9-f27hv", prometheus="monitoring/server", service="nginx-test3"}
  • 约束与限制 使用Prometheus监控自定义指标时,应用程序需要提供监控指标接口,详情请参见Prometheus监控数据采集说明。 使用Pod/Service Annotations的方式暂不支持采集kube-system与monitoring命名空间下的指标,如需采集这两个命名空间下的指标,请通过Pod Monitor与Service Monitor的方式配置。 本文使用Nginx应用示例会拉取nginx/nginx-prometheus-exporter:0.9.0镜像,需要为应用部署的节点添加EIP或先将此镜像上传到SWR,以免部署应用失败。
  • Prometheus监控数据采集说明 Prometheus通过周期性的调用应用程序的监控指标接口(默认为“/metrics”)获取监控数据,应用程序需要提供监控指标接口供Prometheus调用,且监控数据需要满足Prometheus的规范,如下所示。 # TYPE nginx_connections_active gauge nginx_connections_active 2 # TYPE nginx_connections_reading gauge nginx_connections_reading 0 Prometheus提供了各种语言的客户端,客户端具体请参见Prometheus CLIENT LIBRARIES,开发Exporter具体方法请参见WRITING EXPORTERS。Prometheus社区提供丰富的第三方exporter可以直接使用,具体请参见EXPORTERS AND INTEGRATIONS。
  • 使用CloudShell连接集群 CloudShell是一款用于管理与运维云资源的网页版Shell工具,CCE支持使用CloudShell连接集群,如图1所示,单击“命令行工具”即可在CloudShell中使用kubectl访问集群。 CloudShell中kubectl证书有效期为1天,从云容器引擎重新跳转可以重置有效期。 CloudShell基于VPCEP实现,在CloudShell中使用kubectl访问集群需要在集群控制节点的安全组(安全组名称:集群名称-cce-control-随机数)中放通如下网段访问5443端口。5443端口默认对所有网段放通,如果您对安全组做过加固,当出现在CloudShell中无法访问集群时,请检查5443端口是否放通了198.19.0.0/16网段。 集群必须安装CoreDNS才能使用CloudShell。 当前仅北京一、北京四、上海一、上海二、广州、贵阳一和乌兰察布一支持使用CloudShell登录容器。 CloudShell暂不支持委托账号和子项目。 图1 CloudShell 图2 在CloudShell中使用kubectl
  • 约束与限制 “节点访问 ( NodePort )”默认为VPC内网访问,如果需要使用弹性IP通过公网访问该服务,请提前在集群的节点上绑定弹性IP。 创建Service后,如果服务亲和从集群级别切换为节点级别,连接跟踪表将不会被清理,建议用户创建Service后不要修改服务亲和属性,如需修改请重新创建Service。 CCE Turbo 集群中,仅当Service的后端对接使用主机网络(HostNetwork)的Pod时,亲和级别支持配置为节点级别。 VPC网络模式下,当某容器A通过NodePort类型服务发布时,且服务亲和设置为节点级别(即externalTrafficPolicy为local),部署在同节点的容器B将无法通过节点IP+NodePort访问容器A。 v1.21.7及以上的集群创建的NodePort类型服务时,节点上的NodePort端口默认不会用netstat显示:如果集群转发模式为iptables,可使用iptables -t nat -L查看端口;如果集群转发模式为IPVS,可使用ipvsadm -Ln查看端口。
  • 创建NodePort类型Service 登录CCE控制台,单击集群名称进入集群。 在左侧导航栏中选择“服务”,在右上角单击“创建服务”。 设置集群内访问参数。 Service名称:自定义服务名称,可与工作负载名称保持一致。 访问类型:选择“节点访问”。 命名空间:工作负载所在命名空间。 服务亲和:详情请参见服务亲和(externalTrafficPolicy)。 集群级别:集群下所有节点的IP+节点端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。 节点级别:只有通过负载所在节点的IP+节点端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。 选择器:添加标签,Service根据标签选择Pod,填写后单击“确认添加”。也可以引用已有工作负载的标签,单击“引用负载标签”,在弹出的窗口中选择负载,然后单击“确定”。 IPv6:默认不开启,开启后服务的集群内IP地址(ClusterIP)变为IPv6地址,具体请参见如何通过CCE搭建IPv4/IPv6双栈集群?。该功能仅在1.15及以上版本的集群创建时开启了IPv6功能才会显示。 端口配置: 协议:请根据业务的协议类型选择。 服务端口:Service使用的端口,端口范围为1-65535。 容器端口:工作负载程序实际监听的端口,需用户确定。例如nginx默认使用80端口。 节点端口:即NodePort,建议选择“自动生成”;也可以指定端口,默认范围为30000-32767。 单击“确定”,创建Service。
  • CCE支持的权限管理能力 CCE的权限管理包括“集群权限”和“命名空间权限”两种能力,能够从集群和命名空间层面对用户组或用户进行细粒度授权,具体解释如下: 集群权限:是基于 IAM 系统策略的授权,可以通过用户组功能实现IAM用户的授权。用户组是用户的集合,通过集群权限设置可以让某些用户组操作集群(如创建/删除集群、节点、节点池、模板、插件等),而让某些用户组仅能查看集群。 集群权限涉及CCE非Kubernetes API,支持IAM细粒度策略、企业项目管理相关能力。 命名空间权限:是基于Kubernetes RBAC(Role-Based Access Control,基于角色的访问控制)能力的授权,通过权限设置可以让不同的用户或用户组拥有操作不同Kubernetes资源的权限。同时CCE基于开源能力进行了增强,可以支持基于IAM用户或用户组粒度进行RBAC授权、IAM token直接访问API进行RBAC认证鉴权。 命名空间权限涉及CCE Kubernetes API,基于Kubernetes RBAC能力进行增强,支持对接IAM用户/用户组进行授权和认证鉴权,但与IAM细粒度策略独立。 CCE的权限可以从使用的阶段分为两个阶段来看,第一个阶段是创建和管理集群的权限,也就是拥有创建/删除集群、节点等资源的权限。第二个阶段是使用集群Kubernetes资源(如工作负载、Service等)的权限。 图1 权限示例图 清楚了集群权限和命名空间权限后,您就可以通过这两步授权,做到精细化的权限控制。
  • 集群权限(IAM授权)与命名空间权限(Kubernetes RBAC授权)的关系 拥有不同集群权限(IAM授权)的用户,其拥有的命名空间权限(Kubernetes RBAC授权)不同。表1给出了不同用户拥有的命名空间权限详情。 表1 不同用户拥有的命名空间权限 用户类型 1.13及以上版本的集群 拥有Tenant Administrator权限的用户(例如账号) 全部命名空间权限 拥有CCE Administrator权限的IAM用户 全部命名空间权限 拥有CCE FullAccess或者CCE ReadOnlyAccess权限的IAM用户 按Kubernetes RBAC授权 拥有Tenant Guest权限的IAM用户 按Kubernetes RBAC授权
  • IAM支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 云容器引擎(CCE)支持的自定义策略授权项如下所示: 表2 Cluster 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目 (Enterprise Project) 获取指定项目下的集群 GET /api/v3/projects/{project_id}/clusters cce:cluster:list √ √ 获取指定的集群 GET /api/v3/projects/{project_id}/clusters/{cluster_id} cce:cluster:get √ √ 创建集群 POST /api/v3/projects/{project_id}/clusters cce:cluster:create √ √ 更新指定的集群 PUT /api/v3/projects/{project_id}/clusters/{cluster_id} cce:cluster:update √ √ 删除集群 DELETE /api/v3/projects/{project_id}/clusters/{cluster_id} cce:cluster:delete √ √ 升级集群 POST /api/v2/projects/:projectid/clusters/:clusterid/upgrade cce:cluster:upgrade √ √ 唤醒集群 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/awake cce:cluster:start √ √ 休眠集群 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/hibernate cce:cluster:stop √ √ 变更集群规格 POST /api/v2/projects/{project_id}/clusters/:clusterid/resize cce:cluster:resize √ √ 获取集群证书 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/clustercert cce:cluster:get √ √ 表3 Node 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 获取集群下所有节点 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes cce:node:list √ √ 获取指定的节点 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} cce:node:get √ √ 创建节点 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes cce:node:create √ √ 说明: 使用企业项目授权创建节点需额外添加evs:quota:get的全局权限。 更新指定的节点 PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} cce:node:update √ √ 删除节点 DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} cce:node:delete √ √ 表4 Job 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 获取任务信息 GET /api/v3/projects/{project_id}/jobs/{job_id} cce:job:get √ √ 列出所有任务 GET /api/v2/projects/{project_id}/jobs cce:job:list √ √ 删除所有任务或删除单个任务 DELETE /api/v2/projects/{project_id}/jobs DELETE /api/v2/projects/{project_id}/jobs/{job_id} cce:job:delete √ √ 表5 Nodepool 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 获取集群下所有节点池 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools cce:nodepool:list √ √ 获取节点池 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} cce:nodepool:get √ √ 创建节点池 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools cce:nodepool:create √ √ 更新节点池信息 PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} cce:nodepool:update √ √ 删除节点池 DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} cce:nodepool:delete √ √ 表6 Chart 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 更新模板 PUT /v2/charts/{id} cce:chart:update √ × 上传模板 POST /v2/charts cce:chart:upload √ × 列出所有模板 GET /v2/charts cce:chart:list √ × 获取模板信息 GET /v2/charts/{id} cce:chart:get √ × 删除模板 DELETE /v2/charts/{id} cce:chart:delete √ × 表7 Release 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 更新升级模板实例 PUT /v2/releases/{name} cce:release:update √ √ 列出所有模板实例 GET /v2/releases cce:release:list √ √ 创建模板实例 POST /v2/releases cce:release:create √ √ 获取模板实例信息 GET /v2/releases/{name} cce:release:get √ √ 删除模板实例 DELETE /v2/releases/{name} cce:release:delete √ √ 表8 Storage 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 创建PersistentVolumeClaim POST /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims cce:storage:create √ √ 删除PersistentVolumeClaim DELETE /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims/{name} cce:storage:delete √ √ 列出所有磁盘 GET /storage/api/v1/namespaces/{namespace}/listvolumes cce:storage:list √ √ 表9 Addon 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 创建插件实例 POST /api/v3/addons cce:addonInstance:create √ √ 获取插件实例 GET /api/v3/addons/{id}?cluster_id={cluster_id} cce:addonInstance:get √ √ 列出所有插件实例 GET /api/v3/addons?cluster_id={cluster_id} cce:addonInstance:list √ √ 删除插件实例 DELETE /api/v3/addons/{id}?cluster_id={cluster_id} cce:addonInstance:delete √ √ 更新升级插件实例 PUT /api/v3/addons/{id} cce:addonInstance:update √ √ 表10 Quota 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 查询配额详情 GET /api/v3/projects/{project_id}/quotas cce:quota:get √ √
  • 联邦用户支持说明 IAM支持基于SAML、OIDC协议的单点登录,如果您已经有自己的企业管理系统,同时您的用户需要使用您账号内的云服务资源,您可以使用IAM的身份提供商功能,实现用户使用企业管理系统账号单点登录,这一过程称之为联邦身份认证。 通过联邦身份认证访问的用户称为联邦用户,联邦用户相当于IAM用户。 联邦用户使用CCE时需要注意如下两点。 用户创建CCE集群时,会在集群中默认为该用户创建一个cluster-admin权限(管理员权限),联邦用户由于每次登录注销都会改变用户ID,所以在CCE控制台权限管理处,权限用户会显示已删除,请勿删除该权限,否则会导致鉴权失败。此种情况下建议在CCE为某个用户组创建cluster-admin权限,将联邦用户加入此用户组。 联邦用户不支持创建永久访问密钥AK/SK,在需要使用AK/SK的场景(如创建OBS类型PV/PVC时),只能由账号或是实体IAM用户创建密钥,共享给联邦用户。由于密钥表示用户所拥有的权限,因此建议由与联邦用户同在一个用户组的实体IAM用户创建并分享密钥。
  • kubectl权限说明 您可以通过kubectl访问集群的Kubernetes资源,那kubectl拥有哪些Kubernetes资源的权限呢? kubectl访问CCE集群是通过集群上生成的配置文件(kubeconfig.json)进行认证,kubeconfig.json文件内包含用户信息,CCE根据用户信息的权限判断kubectl有权限访问哪些Kubernetes资源。即哪个用户获取的kubeconfig.json文件,kubeconfig.json就拥有哪个用户的信息,这样使用kubectl访问时就拥有这个用户的权限。而用户拥有的权限就是表1所示的权限。
  • 扩展网段规划说明 在添加扩展网段前,需做好网段规划,避免造成网段冲突。注意以下几点: 集群所在VPC下所有子网(包括扩展网段子网)不能和容器网段、服务网段冲突。 扩展网段选择10.0.0.0/8、172.16.0.0/12、192.168.0.0/16可能与集群Master分配的IP冲突,尽量避免选择这三个网段作为扩展网段。 同VPC的非集群内E CS ,如果需要和集群互访,访问会做SNAT, Pod源地址是节点IP而非Pod IP。 如果扩展网段没添加过集群节点,那扩展网段的ECS不能访问集群内Pod;扩展网段添加集群节点后,扩展网段的ECS可以访问集群内Pod。
  • 命名空间使用实践 按照不同环境划分命名空间 一般情况下,工作负载发布会经历开发环境、联调环境、测试环境,最后到生产环境的过程。这个过程中不同环境部署的工作负载相同,只是在逻辑上进行了定义。分为两种做法: 分别创建不同集群。 不同集群之间,资源不能共享。同时,不同环境中的服务互访需要通过负载均衡才能实现。 不同环境创建对应命名空间。 同个命名空间下,通过服务名称(Service name)可直接访问。跨命名空间的可以通过服务名称、命名空间名称访问。 例如下图,开发环境/联调环境/测试环境分别创建了命名空间。 图1 不同环境创建对应命名空间 按照应用划分命名空间 对于同个环境中,应用数量较多的情况,建议进一步按照工作负载类型划分命名空间。例如下图中,按照APP1和APP2划分不同命名空间,将不同工作负载在逻辑上当做一个工作负载组进行管理。且同一个命名空间内的工作负载可以通过服务名称访问,不同命名空间下的通过服务名称、命名空间名称访问。 图2 按照工作负载划分命名空间
  • 健康概况 资源健康概况 资源健康概况涵盖了节点、工作负载和Pod三类资源中异常资源所占比例,以及命名空间的总数,以便及时发现和解决业务异常。 控制面健康概况 除了控制面组件和Master节点的异常占比,控制面资源概况中还提供了API Server的总QPS和请求错误率指标。作为集群的 API服务 提供者,控制面API Server的异常可能会导致整个集群无法访问,同时也会影响依赖API Server的工作负载的正常运行,QPS和请求错误率可以帮助您快速识别和修复问题。 图2 健康概况
  • 资源消耗Top统计 在资源消耗Top统计中,CCE服务会将CPU使用率和内存使用率排名前五的节点、无状态负载、有状态负载和Pod纳入统计范围,以帮助您识别资源消耗“大户”。如果您需要查看全部数据,可前往节点、工作负载或Pod页面。 图3 资源消耗Top统计 监控名词解释: CPU使用率 节点CPU使用率 = 节点的CPU非空闲时间所占的平均比例。 工作负载CPU使用率 = 工作负载各个Pod中CPU使用率的平均值 Pod CPU使用率 = Pod实际使用的CPU核数 / 业务容器CPU核数限制值之和(未配置限制值时采用节点总量) 内存使用率 节点内存使用率 = 节点的内存使用量除以节点的内存总量。 工作负载内存使用率 = 工作负载各个Pod中内存使用率的平均值 Pod内存使用率 = Pod实际使用的物理内存 / 业务容器物理内存限制值之和(未配置限制值时采用节点总量)
  • 数据面监控 此处默认统计近1小时、近8小时和近24小时的各维度资源用量。如需查看更多监控信息,请单击“查看全部监控”,跳转至“仪表盘”页面,相应指导请参见使用仪表盘。 您可以将鼠标悬停在图表上,以便查看每分钟的监控数据。 CPU:单位时间内集群CPU使用情况的统计。 内存:单位时间内集群内存使用情况的统计。 PVC存储状态:PVC和PV的绑定情况。 Pod数量状态趋势:实时监控集群Pod的状态。 Pod总重启次数趋势:近5分钟的集群的Pod重启次数总和。 节点状态趋势:实时监控集群节点的状态。
  • 指标清单 节点视图使用的指标清单如下: 表4 节点指标清单 指标 类型 说明 kube_pod_container_resource_limits gauge 容器请求的限制资源数 kube_pod_status_phase gauge Pod当前阶段 kube_node_status_allocatable gauge 节点可分配的资源总数 kube_pod_container_resource_requests gauge 容器请求的请求资源数 node_memory_MemAvailable_bytes gauge 节点内存可用字节数 node_memory_MemTotal_bytes gauge 节点内存总字节数 node_cpu_seconds_total counter 在不同模式下节点累计CPU花费的时间 container_cpu_usage_seconds_total counter 容器CPU累计使用时间 container_memory_rss gauge RSS内存,即常驻内存集。是分配给进程使用的实际物理内存字节数,不是磁盘上缓存的虚机内存。 container_network_receive_bytes_total counter 容器网络累积接收字节数 container_network_transmit_bytes_total counter 容器网络累积传输字节数 container_network_receive_packets_total counter 容器网络收到的累计数据包数 container_network_transmit_packets_total counter 容器网络传输的累计数据包数 container_network_transmit_packets_dropped_total counter 容器网络传输时丢失的数据包数 container_fs_reads_total counter 容器磁盘读取次数 container_fs_writes_total counter 容器已完成磁盘写入的累计计数 container_fs_reads_bytes_total counter 容器磁盘读取的总字节数 container_fs_writes_bytes_total counter 容器写入的累计在节数
  • 指标说明 Node视图暴露的指标如下: 图1 Node资源指标 表1 Node资源指标说明 指标名称 单位 说明 节点CPU使用率 百分比 节点CPU使用率 CPURequests水位 百分比 节点CPU Requests占节点CPU容量的百分比 CPULimits水位 百分比 节点CPU Limits占节点CPU容量的百分比 内存使用率 百分比 节点内存使用率 内存Requests水位 百分比 节点内存Requests占节点内存容量的百分比 内存Limits水位 百分比 节点内存Limits占节点内存容量的百分比 PodCPU使用率 百分比 节点上Pod的CPU使用率 内存使用量 字节 节点上Pod的内存使用量 图2 节点网络指标 表2 节点网络指标说明 指标名称 单位 说明 网络接收速率 字节/秒 节点每秒接收的字节数 网络发送速率 字节/秒 节点每秒发送的字节数 网络接收速率(Pod) 字节/秒 节点上的Pod每秒接收的字节数 网络发送速率(Pod) 字节/秒 节点上的Pod每秒发送的字节数 接收数据包速率 个/秒 节点上的Pod每秒接收的数据包个数 发送数据包速率 个/秒 节点上的Pod每秒发送的数据包个数 丢包速率(接收) 个/秒 节点上的Pod每秒接收丢失的数据包个数 丢包速率(发送) 个/秒 节点上的Pod每秒发送丢失的数据包个数 图3 节点磁盘指标 表3 节点磁盘指标说明 指标名称 单位 说明 节点磁盘读写IO速率(读+写) 次数/秒 节点磁盘每秒读写IO次数 节点磁盘读写吞吐量(读+写) 字节/秒 节点中Pod每秒读写磁盘字节数
  • 使用kubectl命令登录容器 使用kubectl连接集群,详情请参见通过kubectl连接集群。 执行以下命令,查看已创建的Pod。 kubectl get pod 示例输出如下: NAME READY STATUS RESTARTS AGE nginx-59d89cb66f-mhljr 1/1 Running 0 11m 查询该Pod中的容器名称。 kubectl get po nginx-59d89cb66f-mhljr -o jsonpath='{range .spec.containers[*]}{.name}{end}{"\n"}' 示例输出如下: container-1 执行以下命令,登录到nginx-59d89cb66f-mhljr这个Pod中名为container-1的容器。 kubectl exec -it nginx-59d89cb66f-mhljr -c container-1 -- /bin/sh 如需退出容器,可执行exit命令。
  • 解决方案 使用kubectl连接集群。 执行以下命令获取插件实例详情。 kubectl get ds nvidia-driver-installer -nkube-system -oyaml 请检查UpdateStrategy字段值是否被修改为OnDelete,应改回RollingUpdate。 请检查NVIDIA_DRIVER_DOWNLOAD_URL字段是否与插件页面的GPU插件详情地址不一致,若不一致,请在页面上修改。 图1 插件页面编辑GPU插件
  • 指标清单 主机视图使用的指标清单如下: 表2 指标说明 指标名称 类型 说明 node_cpu_seconds_total Counter 节点不同模式下花费的CPU秒 node_load1 Gauge 1分钟内CPU平均负载,反映了CPU资源的竞争情况。 值小于1时,说明部分CPU资源在处理请求。 值等于1时,说明所有的CPU资源都在处理请求。 值大于1时,说明有部分线程在等待处理。 node_load15 Gauge 15分钟内CPU平均负载 node_memory_MemTotal_bytes Gauge 节点内存总量 node_memory_MemAvailable_bytes Gauge 节点可用内存量 node_disk_written_bytes_total Gauge 节点磁盘写入量 node_disk_read_bytes_total Gauge 节点磁盘读取量 node_filesystem_size_bytes Gauge 节点文件系统大小 node_filesystem_avail_bytes Gauge 节点可用文件系统大小 node_disk_io_time_seconds_total Counter I/O操作所花费的总秒数 node_sockstat_TCP_alloc Gauge 已分配的TCP套接字数 node_sockstat_UDPLITE_inuse Gauge 已使用的UDPLITE套接字 node_filefd_maximum Gauge 文件描述符统计信息:最大值。 node_filefd_allocated Gauge 文件描述符统计信息:已分配。 node_sockstat_sockets_used Gauge 已使用的IPv4套接字数 node_filesystem_readonly Gauge 文件系统只读状态 node_disk_reads_completed_total Counter 磁盘读取完成的次数 node_disk_read_time_seconds_total Counter 磁盘读取完成的次数的总耗时 node_disk_io_time_weighted_seconds_total Counter 节点磁盘IO时间加权值。该值越大,表示节点的磁盘性能越好。 node_procs_blocked Gauge 等待I/O完成的阻塞进程数 node_nf_conntrack_entries Gauge 连接跟踪表的最大大小
  • 指标说明 主机视图暴露的指标具体说明如下: 图1 主机资源指标 表1 视图说明 图表名称 单位 说明 CPU使用率 百分比 每个CPU核的使用率 平均负载 / 平均负载反映了CPU资源的竞争情况 值小于1时,说明部分CPU资源在处理请求。 值等于1时,说明所有的CPU资源都在处理请求。 值大于1时,说明有部分线程在等待处理。 内存使用量 字节 不同模式的内存使用情况 内存使用率 百分比 主机内存使用率 磁盘写入速率 字节/秒 不同的磁盘的写入速率 磁盘读取速率 字节/秒 不同的磁盘的读取速率 磁盘空间使用 字节 磁盘可用量和已使用量 磁盘空间使用率 百分比 不同设备的磁盘使用率 磁盘IO延迟(秒) 秒 磁盘IO延迟 TCP连接 个 TCP连接数 alloc:已分配(已建立、已申请到sk_buff)的TCP套接字数量。 inuse:正在使用(侦听)的TCP套接字数量。 orphan:已分配(已建立、已申请到sk_buff)的TCP套接字数量。 tw:等待关闭的TCP连接数。 UDP使用情况 个 UDP使用情况 liteInuse:正在使用的UDP-Lite套接字数量。 inuse:正在使用的UDP套接字数量。 useMemory:UPD缓冲区使用量。 最大文件描述符 EB:10的18次方 最大文件描述符数 已使用文件描述符 个 当前已分配使用的文件描述符数量 Socket使用情况 个 Socket使用情况 socketsUsed:使用的所有协议套接字总量。 fragInuse:正在使用的Frag套接字数量。 fragMemroy:Frag缓冲区使用量。 rawInuse:正在使用的Raw套接字数量。 文件系统异常 / 文件系统状态 readonly:文件系统只读 deviceError:文件系统错误 磁盘读写速率 次/秒 磁盘每秒进行的读写次数 磁盘读和写延迟(秒) 秒 磁盘读写时延 IO队列数 / 磁盘设备平均IO队列长度,节点磁盘IO时间加权值。该值越大,表示节点的磁盘性能越好。 进程状态 个 处于不同状态的进程数量 连接跟踪表条目数 个 已分配:连接跟踪表当前已分配的条目数 总容量:连接跟踪表的最大条目数
共100000条