You need to enable JavaScript to run this app.
导航
自定义 Nginx Ingress Controller 观测最佳实践
最近更新时间:2025.04.23 15:51:42首次发布时间:2023.09.08 14:01:37
我的收藏
有用
有用
无用
无用

ingress 作为集群中接入层的资源对象,其稳定性与业务质量息息相关。本文为您介绍集群中自定义 Nginx Ingress Controller 的监控最佳实践。

背景信息

容器服务支持在集群中同时部署多套独立的 Nginx Ingress Controller 服务,各服务之间互不影响,包括:

  • 系统默认 ingress-nginx:在集群组件中心中,使用 ingress-nginx 组件部署,并按照系统提示安装。详情请参见 ingress-nginx 组件
    alt
  • 自定义 ingress-nginx:在容器服务 应用中心 中,使用模版部署自定义的 ingress-nginx 应用。详情请参见 部署多套 Nginx Ingress Controller
    alt

日志采集

默认情况下,自定义 Nginx Ingress Controller 的日志没有进行采集和持久化存储,需要您进行配置开启,实现自定义 Nginx Ingress Controller 日志持久化采集、存储以及查询。

前提条件

配置日志采集

  1. 登录 容器服务控制台
  2. 单击左侧导航栏中的 集群
  3. 在集群列表页面,单击目标集群。
  4. 在集群管理页面的左侧导航栏中,单击 日志中心
  5. 选择 日志采集规则 页签,单击 新建采集规则,配置自定义 Nginx Ingress Controller 的日志采集。
    • 配置日志的存储位置,包括 IAM 项目日志项目日志主题。完成后,单击 下一步,采集规则
      alt
    • 配置日志采集规则。
      alt
      配置项说明
      规则名称配置采集规则的名称。在同一个集群下,名称必须唯一。
      采集类型配置日志采集类型,本例中选择 K8s 容器标准输出
      采集信息配置日志采集信息,本例中选择 标准输出-stdout标准错误-stderr

      K8s 采集规则

      勾选 启用,并基于命名空间、作负载名称等参数指定需要进行日志采集的容器。

      • Namespace:配置自定义 ingress-nginx 所在的命名空间。
      • 工作负载类型:勾选 启用,并选择 无状态负载
      • 工作负载名称:配置自定义 ingress-nginx 的工作负载名称。
    • 其他配置,保持缺省即可。完成后,单击 下一步:检查索引配置

      说明

      更多容器日志采集规则的配置方式和参数解释,请参见 采集容器标准输出

    • 配置日志检查索引。本例中保持缺省。
  6. 单击 创建采集配置,完成配置。

查看日志

  1. 在集群管理页面的左侧导航栏中,单击 日志中心
  2. 选择 容器日志 页签,并选择正确的 项目日志项目日志主题,即可查看自定义 Nginx Ingress Controller 的日志。
    alt

监控和告警

您可以在集群中开启云原生观测功能,实现对自定义 Nginx Ingress Controller 的监控和告警。

前提条件

配置指标采集

  1. 在集群中开启云原生观测,详情请参见 开启云原生观测
  2. 开启 Ingress 服务观测,详情请参见 Ingress 服务观测
  3. (可选)配置服务发现。

    说明

    • 当您的自定义 Nginx Ingress Controller 部署在 kube-system 命名空间时,无需配置服务发现,即可查看实例的指标和大盘。
    • 当您的自定义 Nginx Ingress Controller 部署在其他命名空间时,需要配置服务发现,才能查看实例的指标和大盘。
    1. 在集群管理页面的左侧导航栏中,单击 服务与路由 > 服务,在 命名空间 下拉菜单中选择目标命名空间。
      alt
    2. 在服务列表中,选择名称为 *-ingress-nginx-controller-metrics的服务。其中 *代表您自定义的名称。例如:本例中的服务名称为nginx-ingress-nginx-controller-metrics
      alt
    3. 操作 栏中,选择 ... > 更新,为服务配置如下 Annotation,实现服务发现。
      prometheus.io/scrape: "true" # 配置为 true 表示开启采集
      prometheus.io/port: "10254" # 配置为采集指标暴露的端口号
      prometheus.io/path: "/metrics" # 填写指标暴露的 URI 路径,一般是 /metrics
      
      alt
  4. 单击 确定,完成配置。

查看监控

  1. 在集群管理页面的左侧导航栏中,选择 监控中心 > 监控看板
  2. 在左侧看板列表中选择 网络服务监控 > Ingress-nginx 监控,即可查看监控大盘。
    • 在 Namespace 下拉菜单中,选择 ingress 所在的命名空间。

    • 在 ingressClass 下拉菜单中,选择 ingress 的类型。包括系统默认 ingress-nginx 和自定义 Nginx Ingress Controller。

    • 在 Pod 下拉菜单中,指定具体的 Pod。
      alt

      说明

      更多监控看板详情,请参见 Ingress 服务观测

配置告警

托管 Prometheus 支持配置资源告警策略。您可以在控制台上使用 Ingress 服务观测 配置告警。当监控数据达到阈值,触发告警后,系统会将告警资源、故障类型、当前值、告警持续时间等详细信息发送给告警联系人。

托管 Prometheus 支持多种类型的告警通知方式,包括:邮件、飞书、钉钉、电话等。详细的配置方式,请参见: