当前位置: 首页 > news >正文

功能型网站建设时间哈尔滨做平台网站平台公司哪家好

功能型网站建设时间,哈尔滨做平台网站平台公司哪家好,手机怎么创建网站,云南网站制作推荐k8s监控方案实践补充(一):部署Metrics Server实现kubectl top和HPA支持 文章目录 k8s监控方案实践补充(一):部署Metrics Server实现kubectl top和HPA支持一、Metrics Server简介二、Metrics Server实战部署…

k8s监控方案实践补充(一):部署Metrics Server实现kubectl top和HPA支持

文章目录

  • k8s监控方案实践补充(一):部署Metrics Server实现kubectl top和HPA支持
  • 一、Metrics Server简介
  • 二、Metrics Server实战部署
    • 1. 创建RBAC(metrics-server-rbac.yaml)
    • 2. 创建Service(metrics-server-svc.yaml)
    • 3. 创建Deployment(metrics-server-deploy.yaml)
    • 4. 创建APIService(metrics-server-apiservice.yaml)
    • 5. 部署所有资源
  • 三、配置Prometheus抓取资源指标配置
  • 总结


随着容器化和微服务架构的不断发展,系统的复杂性与日俱增,构建一套完善的监控与资源管理体系已成为保障系统稳定运行的关键。在前几篇文章中,我们已经介绍了如何部署 Prometheus、Node Exporter、Grafana 以及 Alertmanager,并通过钉钉 Webhook 实现了监控告警的闭环。

在本篇补充文章中,我们将部署 Kubernetes 原生的资源指标采集组件 —— Metrics Server。它是实现 kubectl top 命令、自动水平扩缩容(HPA)等关键功能的基础,为进一步增强集群资源可观测性和智能调度能力提供支持。

一、Metrics Server简介

Metrics Server 是 Kubernetes 官方提供的资源指标聚合组件,主要用于收集各节点和各 Pod 的 CPU 与内存使用情况。它通过调用 Kubelet 的 Summary API 聚合数据,并将指标存储在内存中(不持久化),供 API Server 查询。

部署 Metrics Server 后,可以实现以下功能:

  • 使用 kubectl top 命令实时查看节点和 Pod 的资源使用情况
  • 为 HPA(Horizontal Pod Autoscaler)提供基础指标支撑,实现基于资源使用的自动扩缩容
  • 在某些 Kubernetes 仪表盘中显示资源使用情况(如 Kubernetes Dashboard)

⚠️ 需要注意的是,Metrics Server 并不会将数据持久化,也不支持 Prometheus 查询语法,它只适用于实时性要求高但不需要历史数据的场景。

g.cn/direct/31da7451a2e34431b7ce7606e6722ebf.png)

二、Metrics Server实战部署

1. 创建RBAC(metrics-server-rbac.yaml)

为 Metrics Server 分配所需的访问权限,包括读取节点、Pod 等资源指标,并配置相应的 ServiceAccount 与 RoleBinding

apiVersion: v1
kind: ServiceAccount
metadata:labels:k8s-app: metrics-servername: metrics-servernamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:labels:k8s-app: metrics-serverrbac.authorization.k8s.io/aggregate-to-admin: "true"rbac.authorization.k8s.io/aggregate-to-edit: "true"rbac.authorization.k8s.io/aggregate-to-view: "true"name: system:aggregated-metrics-reader
rules:
- apiGroups:- metrics.k8s.ioresources:- pods- nodesverbs:- get- list- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:labels:k8s-app: metrics-servername: system:metrics-server
rules:
- apiGroups:- ""resources:- pods- nodes- nodes/stats- namespaces- configmapsverbs:- get- list- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:labels:k8s-app: metrics-servername: metrics-server-auth-readernamespace: kube-system
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccountname: metrics-servernamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:labels:k8s-app: metrics-servername: metrics-server:system:auth-delegator
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: system:auth-delegator
subjects:
- kind: ServiceAccountname: metrics-servernamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:labels:k8s-app: metrics-servername: system:metrics-server
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: system:metrics-server
subjects:
- kind: ServiceAccountname: metrics-servernamespace: kube-system

2. 创建Service(metrics-server-svc.yaml)

暴露 Metrics Server 的 HTTPS 服务端口,供 Kubernetes API Server 注册并访问其指标服务

apiVersion: v1
kind: Service
metadata:labels:k8s-app: metrics-servername: metrics-servernamespace: kube-system
spec:ports:- name: httpsport: 443protocol: TCPtargetPort: httpsselector:k8s-app: metrics-server

3. 创建Deployment(metrics-server-deploy.yaml)

部署 Metrics Server,配置启动参数、TLS 端口、探针、ServiceAccount 以及临时目录等关键运行参数

apiVersion: apps/v1
kind: Deployment
metadata:labels:k8s-app: metrics-servername: metrics-servernamespace: kube-system
spec:selector:matchLabels:k8s-app: metrics-serverstrategy:rollingUpdate:maxUnavailable: 0template:metadata:labels:k8s-app: metrics-serverspec:containers:- args:- --cert-dir=/tmp- --secure-port=4443- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname- --kubelet-use-node-status-port- --kubelet-insecure-tlsimage: harbor.local/k8s/metrics-server:0.4.3imagePullPolicy: IfNotPresentlivenessProbe:failureThreshold: 3httpGet:path: /livezport: httpsscheme: HTTPSperiodSeconds: 10name: metrics-serverports:- containerPort: 4443name: httpsprotocol: TCPreadinessProbe:failureThreshold: 3httpGet:path: /readyzport: httpsscheme: HTTPSperiodSeconds: 10securityContext:readOnlyRootFilesystem: truerunAsNonRoot: truerunAsUser: 1000volumeMounts:- mountPath: /tmpname: tmp-dirnodeSelector:kubernetes.io/os: linuxpriorityClassName: system-cluster-criticalserviceAccountName: metrics-servervolumes:- emptyDir: {}name: tmp-dir

4. 创建APIService(metrics-server-apiservice.yaml)

注册 metrics.k8s.io 资源组的 v1beta1 版本,使 Kubernetes 能够通过标准 API 查询 Metrics Server 提供的实时指标

apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:labels:k8s-app: metrics-servername: v1beta1.metrics.k8s.io
spec:group: metrics.k8s.iogroupPriorityMinimum: 100insecureSkipTLSVerify: trueservice:name: metrics-servernamespace: kube-systemversion: v1beta1versionPriority: 100

5. 部署所有资源

kubectl apply -f 01-metrics-server-rbac.yaml
kubectl apply -f 02-metrics-server-service.yaml
kubectl apply -f 03-metrics-server-deployment.yaml
kubectl apply -f 04-metrics-server-apiservice.yaml

三、配置Prometheus抓取资源指标配置

⚠️ 注意:Prometheus 不直接支持从 Metrics Server 抓取指标,但可以从 Kubelet 的 cAdvisor 路径采集节点与容器资源使用情况。

    - job_name: 'kubernetes-node-cadvisor'kubernetes_sd_configs:- role:  nodescheme: httpstls_config:ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crtbearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/tokenrelabel_configs:- action: labelmapregex: __meta_kubernetes_node_label_(.+)- target_label: __address__replacement: kubernetes.default.svc:443- source_labels: [__meta_kubernetes_node_name]regex: (.+)target_label: __metrics_path__replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor

总结

🚀 本篇文章补充了 Kubernetes 原生监控能力的关键组件 —— Metrics Server 的部署过程,解决了 kubectl top 无法使用的问题,并为 HPA 自动扩缩容提供资源指标支持。
✅下一篇补充文章将继续完善监控体系,介绍如何部署 kube-state-metrics,用于采集 Kubernetes 对象状态(如 Deployment、Pod、Node 等)的关键指标,为 Prometheus 提供结构化的集群状态数据支撑。

http://www.dtcms.com/a/517173.html

相关文章:

  • 基于改进UNet的脑电信号去噪方法研究
  • 中企动力 35 做网站flash网站尺寸
  • 番禺区网站建设哪里有网页设计与制作报告书
  • Linux-权限与开发工具
  • 网站空间多大wordpress更换主机
  • 重庆潼南网站建设全球华设计大奖
  • linux学习笔记(51)Redis发布订阅 主从复制 缓存 雪崩
  • 品牌建设助力高质量发展seo排名是什么意思
  • 软考 系统架构设计师系列知识点之杂项集萃(178)
  • 【开题答辩全过程】以短视频推荐系统的设计与实现为例,包含答辩的问题和答案
  • GPTBots 工作流:让AI从“会说“到“会做“的技术演进引言:企业AI化的瓶颈在哪里?
  • 基于跨临界CO2热力循环除霜过程
  • 北京中燕建设公司网站建e网室内设计网官网vr全景
  • 图片类网站模板金华专业网站制作公司
  • 网站美工主要工作是什么北京seo排名外包
  • 十进制的ASCII码表
  • 网站开发怎样搭建快速搭建网站视频
  • 网站建设大德通众包wordpress 分页导航无效
  • 网站建设与维护ppt新项目首码发布渠道
  • 湘潭建设网站公司wordpress 注册 中文版
  • 如何把国外的网站在国内做镜像百度引流推广
  • 广告型网站网站加载速度慢
  • 13、【Ubuntu】【VSCode】VSCode 断联问题分析:hostname(一)
  • python-day8
  • Metropolis接受准则:随机模拟与优化中的关键基石
  • QuickBI开启了加速引擎,造成数据库满载,如何解决?
  • 公司怎么注册官方网站o2o网站建设效果
  • 左侧导航栏网站石家庄哪里做微网站
  • 上海市浦东新区建设工程安全质量监督站网站wordpress区块编辑无法使用
  • pc网站怎么做适配商城网站建设模板下载