k8s集群监控(2)-部署kube-state-metrics对资源对象监控

简介: kube-state-metrics对k8s集群中的资源对象监控,包括 pod 、 deployment, service



环境准备



系统Centos 7.9

k8s集群:

版本:1.21.5

节点:

192.168.10.201  master

192.168.10.202  work




image.png



部署相关配置文件


kube-state-metrics-rbac.yaml


apiVersion:v1kind:ServiceAccountmetadata:name:kube-state-metricsnamespace:kube-systemlabels:kubernetes.io/cluster-service:"true"addonmanager.kubernetes.io/mode:Reconcile---apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:name:kube-state-metricslabels:kubernetes.io/cluster-service:"true"addonmanager.kubernetes.io/mode:Reconcilerules:-apiGroups:[""]resources:-configmaps-secrets-nodes-pods-services-resourcequotas-replicationcontrollers-limitranges-persistentvolumeclaims-persistentvolumes-namespaces-endpointsverbs:["list","watch"]-apiGroups:["apps"]resources:-statefulsets-daemonsets-deployments-replicasetsverbs:["list","watch"]-apiGroups:["batch"]resources:-cronjobs-jobsverbs:["list","watch"]-apiGroups:["autoscaling"]resources:-horizontalpodautoscalersverbs:["list","watch"]-apiGroups:["networking.k8s.io","extensions"]resources:-ingressesverbs:["list","watch"]-apiGroups:["storage.k8s.io"]resources:-storageclassesverbs:["list","watch"]-apiGroups:["certificates.k8s.io"]resources:-certificatesigningrequestsverbs:["list","watch"]-apiGroups:["policy"]resources:-poddisruptionbudgetsverbs:["list","watch"]---apiVersion:rbac.authorization.k8s.io/v1kind:Rolemetadata:name:kube-state-metrics-resizernamespace:kube-systemlabels:kubernetes.io/cluster-service:"true"addonmanager.kubernetes.io/mode:Reconcilerules:-apiGroups:[""]resources:-podsverbs:["get"]-apiGroups:["extensions","apps"]resources:-deploymentsresourceNames:["kube-state-metrics"]verbs:["get","update"]---apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRoleBindingmetadata:name:kube-state-metricslabels:kubernetes.io/cluster-service:"true"addonmanager.kubernetes.io/mode:ReconcileroleRef:apiGroup:rbac.authorization.k8s.iokind:ClusterRolename:kube-state-metricssubjects:-kind:ServiceAccountname:kube-state-metricsnamespace:kube-system---apiVersion:rbac.authorization.k8s.io/v1kind:RoleBindingmetadata:name:kube-state-metricsnamespace:kube-systemlabels:kubernetes.io/cluster-service:"true"addonmanager.kubernetes.io/mode:ReconcileroleRef:apiGroup:rbac.authorization.k8s.iokind:Rolename:kube-state-metrics-resizersubjects:-kind:ServiceAccountname:kube-state-metricsnamespace:kube-system



kube-state-metrics-deployment.yaml 配置


apiVersion: apps/v1
kind: Deployment
metadata:  name: kube-state-metrics
  namespace: kube-system
  labels:    k8s-app: kube-state-metrics
    kubernetes.io/cluster-service: "true"    addonmanager.kubernetes.io/mode: Reconcile
    version: v1.3.0
spec:  selector:    matchLabels:      k8s-app: kube-state-metrics
      version: v1.3.0
  replicas: 1  template:    metadata:      labels:        k8s-app: kube-state-metrics
        version: v1.3.0
      annotations:        scheduler.alpha.kubernetes.io/critical-pod: ''    spec:      priorityClassName: system-cluster-critical
      serviceAccountName: kube-state-metrics
      containers:      - name: kube-state-metrics
        image: lizhenliang/kube-state-metrics:v1.8.0 
        ports:        - name: http-metrics
          containerPort: 8080        - name: telemetry
          containerPort: 8081        readinessProbe:          httpGet:            path: /healthz
            port: 8080          initialDelaySeconds: 5          timeoutSeconds: 5      - name: addon-resizer
        image: lizhenliang/addon-resizer:1.8.6        resources:          limits:            cpu: 100m
            memory: 30Mi
          requests:            cpu: 100m
            memory: 30Mi
        env:          - name: MY_POD_NAME
            valueFrom:              fieldRef:                fieldPath: metadata.name
          - name: MY_POD_NAMESPACE
            valueFrom:              fieldRef:                fieldPath: metadata.namespace
        volumeMounts:          - name: config-volume
            mountPath: /etc/config
        command:          - /pod_nanny
          - --config-dir=/etc/config
          - --container=kube-state-metrics
          - --cpu=100m
          - --extra-cpu=1m
          - --memory=100Mi
          - --extra-memory=2Mi
          - --threshold=5
          - --deployment=kube-state-metrics
      volumes:        - name: config-volume
          configMap:            name: kube-state-metrics-config
---apiVersion: v1
kind: ConfigMap
metadata:  name: kube-state-metrics-config
  namespace: kube-system
  labels:    k8s-app: kube-state-metrics
    kubernetes.io/cluster-service: "true"    addonmanager.kubernetes.io/mode: Reconcile
data:  NannyConfiguration: |-
    apiVersion: nannyconfig/v1alpha1
    kind: NannyConfiguration



kube-state-metrics-service.yaml 配置



apiVersion: v1
kind: Service
metadata:  name: kube-state-metrics
  namespace: kube-system
  labels:    kubernetes.io/cluster-service: "true"    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/name: "kube-state-metrics"  annotations:    prometheus.io/scrape: 'true'spec:  ports:  - name: http-metrics
    port: 8080    targetPort: http-metrics
    protocol: TCP
  - name: telemetry
    port: 8081    targetPort: telemetry
    protocol: TCP
  selector:    k8s-app: kube-state-metrics


创建 kube-state-metrics 服务


kubectlapply-f.


查看服务启动状态

image.png



打开prometheus控制台


image.png



相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
9月前
|
存储 Kubernetes 开发工具
使用ArgoCD管理Kubernetes部署指南
ArgoCD 是一款基于 Kubernetes 的声明式 GitOps 持续交付工具,通过自动同步 Git 存储库中的配置与 Kubernetes 集群状态,确保一致性与可靠性。它支持实时同步、声明式设置、自动修复和丰富的用户界面,极大简化了复杂应用的部署管理。结合 Helm Charts,ArgoCD 提供模块化、可重用的部署流程,显著减少人工开销和配置错误。对于云原生企业,ArgoCD 能优化部署策略,提升效率与安全性,是实现自动化与一致性的理想选择。
623 0
|
8月前
|
存储 Kubernetes 异构计算
Qwen3 大模型在阿里云容器服务上的极简部署教程
通义千问 Qwen3 是 Qwen 系列最新推出的首个混合推理模型,其在代码、数学、通用能力等基准测试中,与 DeepSeek-R1、o1、o3-mini、Grok-3 和 Gemini-2.5-Pro 等顶级模型相比,表现出极具竞争力的结果。
|
9月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
911 33
|
9月前
|
Prometheus Kubernetes 监控
Kubernetes监控:Prometheus与AlertManager结合,配置邮件告警。
完成这些步骤之后,您就拥有了一个可以用邮件通知你的Kubernetes监控解决方案了。当然,所有的这些配置都需要相互照应,还要对你的Kubernetes集群状况有深入的了解。希望这份指南能帮助你创建出适合自己场景的监控系统,让你在首次发现问题时就能做出响应。
541 22
|
9月前
|
Kubernetes 开发者 Docker
集群部署:使用Rancher部署Kubernetes集群。
以上就是使用 Rancher 部署 Kubernetes 集群的流程。使用 Rancher 和 Kubernetes,开发者可以受益于灵活性和可扩展性,允许他们在多种环境中运行多种应用,同时利用自动化工具使工作负载更加高效。
533 19
|
9月前
|
存储 测试技术 对象存储
使用容器服务ACK快速部署QwQ-32B模型并实现推理智能路由
阿里云最新发布的QwQ-32B模型,通过强化学习大幅度提升了模型推理能力。QwQ-32B模型拥有320亿参数,其性能可以与DeepSeek-R1 671B媲美。
|
10月前
|
存储 Kubernetes 测试技术
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
594 12
|
10月前
|
弹性计算 运维 Kubernetes
使用ACK Edge统一管理多地域的ECS资源
使用ACK Edge统一管理多地域的ECS资源
223 0
|
弹性计算 Kubernetes 监控
Kubernetes 资源观测利器:KubeWatch
KubeWatch 用于观测 Kubernetes 资源情况,并实时通知到各种协作软件/聊天软件
3037 0
Kubernetes 资源观测利器:KubeWatch
|
弹性计算 Kubernetes 监控
Kubernetes 资源观测利器:KubeWatch
KubeWatch 用于观测 Kubernetes 资源情况,并实时通知到各种协作软件/聊天软件,本文将为大家详细讲解 KubeWatch 的用法。
1581 0
Kubernetes 资源观测利器:KubeWatch

推荐镜像

更多