写点什么

与 Prometheus 搭配使用 Amazon EKS 控制平面指标

  • 2019-10-04
  • 本文字数:2134 字

    阅读完需:约 7 分钟

与 Prometheus 搭配使用 Amazon EKS 控制平面指标

您可以利用 Kubernetes 核心组件中提供的一系列丰富指标来观察控制平面中正在发生的情况。您可以了解的信息包括:API 服务器的每个资源中 watchers 的数量、审核跟踪事件的数量、向 API 服务器所发送请求的延迟,以及更多信息。这些指标来自于 Kubernetes API 服务器、Kubelet、Cloud Controller Manager 和 Scheduler。这些组件会在 /metrics 处显示内容类型为 text/plain 的“指标”终端节点(通过 HTTP 响应)。这篇博文将详细向您介绍如何基于 Amazon Elastic Container Service for Kubernetes (EKS) 集群获取 API 服务器指标。

先决条件

首先,您必须设置一个 Amazon EKS 集群。在此博文中,我们将在集群配置文件机制中使用 eksctl。首先,必须下载以下工具:


  • eksctl

  • kubectl

  • helm

  • 安装所有必需的工具后,即可开始启动 EKS 集群。在本例中,我们会将集群部署在 us-east-2(即 AWS 俄亥俄区域)中,您可将 AWS_REGION 替换为支持 Amazon EKS 的任何区域。

部署集群

export AWS_REGION=us-east-2
复制代码


在导出区域后,按照如下所示创建 ClusterConfig:


cat >cluster.yaml <<EOFapiVersion: eksctl.io/v1alpha4kind: ClusterConfigmetadata:  name: control-plane-metrics  region: us-east-2
nodeGroups: - name: ng-1 desiredCapacity: 2EOF
复制代码


在创建该文件后,使用 eksctl create cluster 命令创建集群:


eksctl create cluster -f cluster.yaml
复制代码


完成此操作大约需要 10 – 15 分钟时间,之后,便可获得可供使用的 Amazon EKS 集群。

原始指标

在直观呈现指标、监视指标以及接收与指标相关的提醒之前,您可以先看一看这些指标终端节点的输出是怎样的。


kubectl get --raw /metrics
复制代码



这些指标的输出采用 Prometheus 格式。Prometheus 是云原生计算基金会 (CNCF) 的一个成熟项目。它可以扫描与抓取您的集群内的指标终端节点,甚至还能扫描其自身的终端节点。Prometheus 指标的语法为:


metric_name {[ "tag" = "value" ]*} value
复制代码


您可以设置 metric_name、为指标定义 tags(可用于查询),以及设置 value。以下是使用 apiserver_request_count 的一个指标示例:


apiserver_request_count{client="kube-apiserver/v1.11.8 (linux/amd64) kubernetes/7c34c0d",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 7
复制代码


这行代码的意思是,我们有 7 个发送给 pods 资源的 LIST 请求。


接下来,我们要使用 helm 设置 Prometheus。

配置 Helm

创建集群后,您可以在本地设置 helm,以免在集群中运行 tiller。按照博文 Using Helm with Amazon EKS 中的步骤操作。


在完成这些步骤之后,您便可以部署 Prometheus。

部署 Prometheus

首先,创建一个 Kubernetes 命名空间,并使用 helm 来部署 stable/prometheus 软件包:


kubectl create namespace prometheushelm install stable/prometheus \              --name prometheus \             --namespace prometheus \             --set alertmanager.persistentVolume.storageClass="gp2",server.persistentVolume.storageClass="gp2",server.service.type=LoadBalancer
复制代码


安装完毕后,您可以把服务列出来,以获取负载均衡器的地址:


kubectl get svc -o wide —namespace prometheus
复制代码



您可以在浏览器中输入此负载均衡器的地址来导航到此负载均衡器,系统会加载 Prometheus UI。您可以在这个地方前往状态 → 目标 – 此页面会向您显示控制平面节点:



如果能够看到自己的节点,您就可以继续检查某些指标。导航到图表,在下拉列表 – 插入光标处的指标 – 中选择任意以 apiserver_ 开头的指标并单击执行。系统随即会从 API 服务器加载最新同步的数据。



您现在可以在控制台视图中查看指标,并且可以切换到图表并直观呈现此数据:


清除

如果您专为运行此测试部署了一个集群,并且希望在测试完后清除此集群的话,您可以先删除 prometheus 命名空间,然后删除集群:


kubectl delete namespace prometheuseksctl delete cluster -f cluster.yaml
复制代码


您可以利用 Prometheus 查看 Kubernetes API 服务器中正在发生的情况,并且能够以图表形式呈现这些指标在一段时间内的变化。您还可以使用 Prometheus 来设置提醒规则(这会填充提醒选项卡)。另外,您可以利用此 helm 图表来部署 Alertmanager,从而根据自己定义的提醒规则来配置提醒。尝试一下修改 prometheus-server configmap 来自己设置一些规则:


kubectl get configmap -n prometheus prometheus-server -o yaml
复制代码


如果您想了解如何像在 Kubernetes API 中这样,在自己的应用程序中使用指标,请查看 Nicholas Turner 和 Nic Cope 的演讲北美 2018 KubeCon CloudNativeCon – 监控全世界:适用于容器化应用程序和集群的有意义指标


作者介绍:


Chris Hein


Chris Hein 是一位资深的开发者,倡导 Amazon Web Services 的 Kubernetes/EKS。加入 Amazon 之前,Chris 曾就职于众多规模不等的公司,如 GoPro、Sproutling 和 Mattel。有关 Chris 的更多信息,请访问 https://aws.amazon.com/blogs/opensource/author/heichris/,并通过 @christopherhein 关注他


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/amazon-eks-control-plane-metrics-prometheus/


2019-10-04 20:341124
用户头像

发布了 1843 篇内容, 共 110.2 次阅读, 收获喜欢 77 次。

关注

评论

发布
暂无评论
发现更多内容

搭建外汇交易所系统、海外公司注册、金融牌照代办

一个普通的写作

视频格式转换软件:AnyMP4 Mac Video Converter Ultimate for Mac

iMac小白

GoLand 2024 Mac/Win:GO语言开发者的理想选择

iMac小白

GPT-4 Turbo 融合视觉能力;Google 新添 AI 视频应用 Vids丨 RTE 开发者日报 Vol.181

声网

沙丘世界,如何抵抗勒索病毒的入侵?

脑极体

数据安全

中文版 支持M1 :AutoCAD 2024 Mac破解版 附 AutoCAD 2024破解补丁

iMac小白

杭州悦数 2023 年回顾:领航创新,多维突破

悦数图数据库

图数据库

聊聊发版提测和发布评审

老张

质量保障 质量门禁 线上发布

表设计的18条军规

苏三说技术

数据库 表设计

实用指南:使用Pytest Allure测试框架添加用例失败截图

霍格沃兹测试开发学社

ChatGPT 人工智能助手为你定制测试计划,精准又高效!

测吧(北京)科技有限公司

测试

教你构建一个优秀的SD Prompt

程序那些事

程序那些事 AIGC Stable Diffusion

JetBrains CLion 2024 for Mac v2024.1中文激活版

iMac小白

澜起科技率先试产DDR5时钟驱动器( CKD )芯片

财见

2024-04-10:用go语言,考虑一个非负整数数组 A, 如果数组中相邻元素之和为完全平方数,我们称这个数组是正方形数组。 现在要计算 A 的正方形排列的数量。 两个排列 A1 和 A2 被认为是

福大大架构师每日一题

福大大架构师每日一题

CST电磁仿真基本单位设置和保存结果【仿真教程】

思茂信息

教程 cst 电磁仿真

YouTube mac 打造专属视频观看体验

iMac小白

SQLPro Studio for Mac(可视化数据库管理工具)v2024.21激活版

iMac小白

了解一下 SSE

袁世超

stream kitex sse

PDF专业制作与编辑软件 Acrobat Pro DC 2024 for mac中文激活版

iMac小白

macOS Catalina for mac (macos 10.15系统离线安装包) v10.15.7正式版

iMac小白

专业DVD转换软件:MacX DVD Ripper Pro for Mac

iMac小白

如何借助小程序容器打造自有App小程序生态?

Geek_2305a8

抓包神器wireshark安装保姆级教程

霍格沃兹测试开发学社

制造业工厂如何选择QMS质量管理系统?

万界星空科技

质量管理 万界星空科技 QMS 质量管理系统 生产质量

ES6生成器,看似同步的异步流程控制表达风格

华为云开发者联盟

JavaScript 前端 华为云 华为云开发者联盟 企业号2024年4月PK榜

eBPF 开发者大会倒计时!4 月 13 日不见不散

乘云数字DataBuff

智能运维 ebpf Kubernetes, 云原生, eBPF 一体化可观测平台Databuff 云原生运维

与 Prometheus 搭配使用 Amazon EKS 控制平面指标_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章