写点什么

与 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:341137
用户头像

发布了 1848 篇内容, 共 113.5 次阅读, 收获喜欢 78 次。

关注

评论

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

软件测试/人工智能|测试报告很难写,ChatGPT来帮你

霍格沃兹测试开发学社

融云五大场景化能力,全面赋能金融行业数智化转型

融云 RongCloud

金融 IM RTC 数智化 通讯

做开发这么多年,我终于悟了

秃头小帅oi

最新demo版|如何0-1开发支付宝小程序之前期准备篇(一)

盐焗代码虾

小程序 支付宝小程序 教程分享

BatchPhoto pro for Mac(mac图片编辑工具)v5.0.1激活版

iMac小白

Farrago for Mac(最佳的音频编辑软件)v2.0.7注册版

iMac小白

链路追踪,助您洞悉数据联动分析的奥秘

观测云

Profile 链路跟踪 应用性能监控

ChatGPT被曝测试新功能:学习所有历史聊天,还能重置记忆、“阅后即焚”

Openlab_cosmoplat

探索计算机视觉技术的应用前景

EquatorCoco

计算机视觉 视觉开发 计算机科学与技术

软件测试/人工智能|如何使用ChatGPT写出满意的测试方案

霍格沃兹测试开发学社

Parallels Desktop 19 for Mac虚拟机 19.1.0一键激活版 支持M1

彩云

Parallels Desktop 虚拟机 Parallels Desktop

鸿蒙千帆起,美团、百度、去哪儿旅行等60余企业参与鸿蒙实训营

最新动态

AnyGo for Mac(在iPhone / iPad上轻松模拟GPS位置)v6.8.1激活版

iMac小白

OmniGraffle Pro for mac(最好用的思维导图工具)v7.22.3中文正式版

iMac小白

Pixologic ZBrush 2024中文版 支持m1

彩云

3D数字雕刻软件 Pixologic ZBrush

SRE方法论之监控设计

不思jo

#运维 #监控

Permute 3 for mac(万能音视频转换器) 3.11.1中文激活版

mac

苹果mac Windows软件 媒体格式转换软件 Permute

低代码是“银弹”,还是“毒弹”?

高端章鱼哥

低代码

TinkerTool System for Mac(系统维护工具)v8.88免激活版

iMac小白

通过 Canal 将 MySQL 数据实时同步到 Easysearch

极限实验室

MySQL canal easysearch

用低代码平台开发应用

互联网工科生

软件开发 低代码 JNPF

Aiseesoft Mac Video Converter Ultimate for Mac(好用的视频转换工具)免激活版

iMac小白

HarmonyOS 实战项目

快乐非自愿限量之名

鸿蒙 HarmonyOS 鸿蒙开发

转变关键财务流程,实现企业数字化升级

智达方通

数字化升级 预算管理 财务流程

大模型驱动DataWorks数据开发治理平台智能化升级

阿里云大数据AI技术

大数据

软件测试/人工智能|教你如何用ChatGPT写一份漂亮的测试计划

霍格沃兹测试开发学社

Acon Digital Acoustica Premium Edition for mac(mac数字音频编辑器)v7.5.5激活版

iMac小白

云原生专栏丨基于服务网格的企业级灰度发布技术

inBuilder低代码平台

云原生

云端力量:探索亚马逊云服务器,提升您的业务无限可能

熬夜磕代码、

亚马逊

探索当代AI人工智能云服务技术的强者

不在线第一只蜗牛

AI 亚马逊云 AWS Lightsail 云服务 微软云

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