在 Kubernetes 中使用 Metrics Server 收集指标数据

在 Kubernetes 集群中,我们需要对集群的资源使用情况进行监控和管理。为了实现这个目标, Kubernetes 提供了 Metrics Server,它可以收集 Kubernetes 集群中各项指标数据并提供 API 服务,供其他组件或应用调用查询。本文将介绍如何安装和使用 Metrics Server 来收集集群的指标数据。

安装 Metrics Server

前置条件

在安装 Metrics Server 之前,确保你的 Kubernetes 集群满足以下要求:

  • Kubernetes 版本为 1.8 或以上
  • kubelet 启动参数中包含 --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP (可以通过 kubeadm init 命令中的 --node-ip 参数实现)
  • 启用了 kubelet 的 cadvisor 监控插件(kubelet 启动参数中包含 --cadvisor-port=<port>

安装 Metrics Server

  1. 在 kubernetes-dashboard 官网下载 Metrics Server 的 YAML 文件:下载链接

  2. 在 Kubernetes 集群中执行以下命令安装 Metrics Server:

    ------- ----- -- ---------------
  3. 验证 Metrics Server 是否成功安装:

    ------- --- ---------- ---------------------- -- ------------------------------------------

    如果输出的结果为 True,则表示 Metrics Server 安装成功。

使用 Metrics Server

查看集群指标数据

在安装 Metrics Server 后,可以通过查看 API 来获取集群的指标数据。以下是一些 Metrics Server 支持的 API:

  • /apis/metrics.k8s.io/v1beta1/nodes:获取节点的 CPU 和内存使用量。
  • /apis/metrics.k8s.io/v1beta1/pods:获取 Pod 的 CPU 和内存占用量。
  • /apis/metrics.k8s.io/v1beta1/namespaces/{namespace}/pods/{pod}:获取特定 Namespace 和 Pod 的 CPU 和内存占用量。
  • /apis/metrics.k8s.io/v1beta1/nodes/{node}:获取特定节点的 CPU 和内存使用量。

以获取节点 CPU 和内存使用量为例,可以使用以下命令:

------- --- ----- ------------------------------------ - -- -

其中 jq 是一个命令行工具,用于解析 JSON 数据格式。

监控指标数据

在 Kubernetes 集群中,可以通过 PrometheusGrafana 等监控工具来实现集群指标数据的监控和可视化。

以下是使用 Prometheus 监控 Metrics Server 的指标数据的示例配置:

-------
  ---------------- ---
  -------------------- ---

---------------
  - --------- ----------------------
    ----------------------
      - ----- ---
        -----------
          ------ ---------------
    ----------------
      - -------------- -------------------------------------------
        ---------- -
        ------ --------
        ------- ----
      - -------------- -----------------------------
        ---------- -
        ------ ------------
        ------- ----
      - -------------- ---------------------------------------------------- --------------------------------------
        ---------- -
        ------ ------------------------------------
        ------- ----
      - -------------- ------------- --------------------------------------------
        ---------- -
        ------ --------------
        ------------- -----------
        ------------ --------------------------
        ------- -------

  - --------- ------------------
    ----------------------
      - ----- ----
    ----------------
      - -------------- -----------------------------------------------------
        ---------- -
        ------ -----
        ------------- ------
        ------------ --
        ------- -------
      - ---------- -
        ------ --
        ------------- ----------------
        ------------ ----------------------------------
        ------- -------
      - -------------- -------------
        ---------- -
        ------ ----
        ------------- --------------
        ------------ --
        ------- -------
      - ---------- -
        ------ ----
        ------------- --------
        ------------ --
        ------- -------
      - -------------- ----------------
        ---------- -
        ------ ----
        ------------- -----------
        ------------ --------------------------
        ------- -------

  - --------- -----------------
    ----------------------
      - ----- ---
        -----------
          ------ ---------------
    ----------------
      - -------------- -------------------------------------------
        ---------- -
        ------ --------
        ------- ----
      - -------------- -----------------------------
        ---------- -
        ------ ------------
        ------- ----
      - -------------- ----------------------------------------------------
        ---------- -
        ------ ---------------------
        ------- ----
      - -------------- ----------------------------
        ---------- -
        ------ -----
        ------------- --------
        ------------ --
        ------- -------
      - ---------- -
        ------ --
        ------------- ----------------
        ------------ ---------------------------------
        ------- -------
      - -------------- -------------
        ---------- -
        ------ ----
        ------------- --------------
        ------------ --
        ------- -------
      - ---------- -
        ------ ----
        ------------- --------
        ------------ --
        ------- -------
      - -------------- -------------------
        ---------- -
        ------ ----
        ------------- ---------
        ------------ --
        ------- -------
      - -------------- -------------
        ---------- -
        ------ ----
        ------------- --------
        ------------ --
        ------- -------
      - -------------- -------------------
        ---------- -
        ------ ----
        ------------- --------------
        ------------ --
        ------- -------
      - -------------- ------------------------
        ---------- -
        ------ ----
        ------------- --------------
        ------------ --
        ------- -------
      - -------------- ----------------
        ---------- -
        ------ ----
        ------------- ------
        ------------ --
        ------- -------
      - -------------- -----------------------------------------------------
        ---------- -
        ------ ---------
        ------------- --------------
        ------------ --
        ------- -------
      - -------------- -------------
        ---------- -
        ------ ----
        ------------- -----------
        ------------ --------------------------
        ------- -------

在 Prometheus 的配置文件中通过注入 job,可以轻松地监控 Metrics Server 数据。示例配置中提供了 3 个监控 job:

  • kubernetes-apiserver:监控 Kubernetes API Server 的调用并提供 API 响应时间。
  • kubernetes-nodes:监控 Kubernetes 节点的 CPU 和内存使用量。
  • kubernetes-pods:监控 Kubernetes Pod 的 CPU 和内存占用量。

以上配置中的 kubernetes.default.svc:443 需要根据集群实际情况设定。

结论

Metrics Server 是 Kubernetes 内置的一款数据收集器。安装 Metrics Server 后,你可以通过 API 查看集群数据。在结合 Prometheus 或 Grafana 等工具一起使用时,可以监控 Kubernetes 集群的各种数据,并实现数据的可视化和告警。通过本文提供的示例代码和配置,你可以方便地开始使用 Metrics Server 来管理和监控你的 Kubernetes 集群。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/670c8065759e058cdf32ca0d


猜你喜欢

  • Redux-Middleware 中间件原理分析

    Redux 是一个极为流行的状态管理工具,它被广泛应用于 React 应用中。Redux 的核心概念是 Store,但是如果把所有的逻辑都写在 Store 中会使得代码变得复杂且难以维护。

    5 天前
  • Docker 容器中报 “/usr/bin/env: node: No such file or directory” 的问题解决方案!

    在使用 Docker 部署应用程序时,我们经常会遇到一些问题。其中之一是在容器中运行应用程序时出现 “/usr/bin/env: node: No such file or directory”的错误...

    5 天前
  • 谈谈 ESLint 与 JSLint 之间的差异

    谈谈 ESLint 与 JSLint 之间的差异 前言 对于前端开发而言,代码的质量和规范性尤为重要。这不仅关系到项目的可维护性和后期的开发效率,还关系到团队合作的顺畅性。

    5 天前
  • 响应式设计下如何实现模态框?

    在响应式设计中,模态框是一种重要的组件。模态框可以帮助我们在手机和电脑等不同屏幕大小的设备上,提供优美的用户体验。本文将介绍如何使用 HTML、CSS 和 JavaScript 实现模态框。

    5 天前
  • ES2020 中的链判断运算符与 Nullish Coalescing 运算符探究

    在前端开发中,我们常常需要处理各种数据。有时候我们需要访问一个深层次的对象或数组的某个属性或元素,但是却不确定这个对象或数组是否存在。在 ES2020 中,加入了链判断运算符(Optional Cha...

    5 天前
  • Apollo Client:最适合 GraphQL 前端开发的技术栈

    GraphQL 是一种由 Facebook 开发的 API 查询语言,它提供了一种更加高效、强大且可定制的方式来进行数据查询。而对于前端开发领域,Apollo Client 则是一种最适合 Graph...

    5 天前
  • Headless CMS 实践:如何构建一个可跨平台的视觉化应用

    随着云服务和微服务的流行,Headless CMS 成为了越来越多网站开发者的选择。Headless CMS 是一个不考虑前台样式和渲染的 CMS,仅仅提供 API 接口供前端页面调用。

    5 天前
  • Socket.io 的事件优化方法

    Socket.io 是现代化的基于 Web 的实时通讯引擎。它使得构建实时的 Web 应用程序变得非常容易。然而,由于网络状况的不稳定性、服务器压力的不断增加以及客户端数量的增加,它所涉及的事件处理和...

    5 天前
  • Cypress 实现无头测试 Web 页面的实例教程

    前端测试是一个非常重要的环节,它能够确保我们的网站或者应用程序在发布之前是有质量保障的。为了达到这个目的,很多团队选择使用自动化测试工具来帮助他们更加高效的测试。Cypress 就是这样一款工具,它能...

    5 天前
  • React 中使用 React-DnD 进行拖拽操作

    在 web 应用开发中,拖拽操作是一种非常常见的交互方式。React-DnD 是 React 拖拽操作的一个强大库,它提供了易于使用的 API,使得我们可以方便地实现各种拖拽功能,包括单元格排序、拖拽...

    5 天前
  • 构建快速响应的 Web 应用程序的方法

    在现代互联网应用中,响应速度是用户体验的重要组成部分之一。作为前端开发者,我们需要确保我们构建的 Web 应用程序拥有快速响应的特性,以满足用户的期望和需求。在本文中,我们将讨论一些构建快速响应的 W...

    5 天前
  • 如何使用 PM2 启动 Node.js 应用程序并使其永远运行?

    前言 在前端开发中,我们经常需要使用 Node.js 构建 Web 应用程序和服务。在部署应用程序时,我们需要使用一种工具来启动和管理 Node.js 服务,以确保它们可以始终运行。

    5 天前
  • 如何在 SASS 中实现 CSS 层级作用

    CSS 层级作用是指,当多个选择器作用于同一个元素时,浏览器根据选择器的优先级来确定该元素应用哪个样式。SASS 是一种 CSS 预处理器,可以简化 CSS 的编写和维护,同时也提供了一些机制来实现 ...

    5 天前
  • Redux 技术选型分享

    Redux 是一个流行的状态管理工具,它可以帮助我们管理应用程序的状态,并且在不同的组件之间方便地共享数据。在前端开发中,Redux 是一个非常受欢迎的技术选型。在本文中,我们将介绍 Redux 的一...

    5 天前
  • Promise 在文件上传中的应用及注意事项

    前言 文件上传是 Web 开发中非常常见的需求。随着前端技术的发展,现在可以使用一些先进的技术来实现高性能、可靠的文件上传功能,其中 Promise 是一个非常重要的技术。

    5 天前
  • 深入了解 ECMAScript 2019:使用异步迭代器处理优雅的异步控制流

    介绍 在传统的 JavaScript 编程中,处理异步流程一直是一个棘手的问题。在 ES2017 中引入了 async/await 来处理异步操作,但是这种方式也存在一些问题,尤其是在处理大量数据的异...

    5 天前
  • Hapi.js 的扩展设置:测试你的插件

    在 Hapi.js 中开发自定义插件的时候,很少有人会考虑如何测试它们。但是测试是软件开发过程中至关重要的一部分,它可以让你确信你的代码是有效的、健壮的和稳定的。本文将介绍如何在 Hapi.js 中测...

    5 天前
  • GraphQL 的优点及缺点:前端开发者详解

    在 Web 应用程序开发中,数据传输和请求通常需要使用 REST APIs。但是,REST APIs 也存在一些缺点,例如无法灵活地处理不同请求和响应,频繁地获取不必要的数据和相关性等问题。

    5 天前
  • 如何在 Deno 中使用 JWT 进行身份验证

    JWT (JSON Web Token) 是一种用于身份验证的开放标准,它可以安全地在客户端和服务器之间传递信息,而无需在每个请求时都进行身份验证。Deno 是一个现代的 JavaScript 和 T...

    5 天前
  • 如何使用 Socket.io 实现多人在线问卷调查

    在现代互联网时代,交互性和用户参与度是非常重要的指标,问卷调查是一种常见的用户互动方式,也是一种非常有效的数据收集方式。但是,在一些重要事项上,单个用户的观点并不足以了解大众的看法。

    5 天前

相关推荐

    暂无文章