k8s
组件 资源清单
pod 生命周期
pod 控制器
服务发现
runcher
KubeSphere
Helm
helm命令
helm 常用内置对象
helm 内置函数
helm 的逻辑 和 流程控制
helm 中变量在作用域、列表、元祖、字典中的引用
helm 使用define定义子模版、template和include调用
helm 获取其他文件的内容和文件名
社区的Helm chart仓库
helm几个常用仓库
存储 configMap
进入k8s pod
k8s Node节点的调试
k8s 部署
sealos 部署
kubeadm 1.28部署
增加 node 节点
在aws 上自建k8s
利用NFS动态提供Kubernetes后端存储卷
rook-ceph
CephFS挂载
Ceph Dashboard
ingress
k8s集成kube-prometheus
ServiceMonitor 添加配置
Prometheus 长期远程存储方案 VictoriaMetrics
解决ControllerManager、Scheduler、watchdog监控问题
抓取配置说明
kubernetes配置imagePullSecrets秘钥来拉取镜像
在 Kubernetes 裡跑 curl 來測試內部服務
MetalLB
cloudflare-tunnel-ingress-controller
K8S kubectl 自动补全
argocd
helm部署redis-culster集群
改变默认 StorageClass
自定义指标HPA
istio
kiali
k8s接入graylog
Labels
DNS
HPA
ConfigMap挂载导致容器目录覆盖的问题
污点容忍度
身份认证与权限 RBAC
command
运行crictl ps -a 报错
etcd
cka证书
cert-manager
Kubernetes 创建普通账号
部署 metrics-server 指标
deployment 重启
Kubernetes中如何优雅的解决Pod时区问题
alertmanager
oom killed
eks挂载efs
eks创建集群
eksctl awscli kubectl
污点和容忍度
Kubernetes 删除namespace Terminating解决脚本
k8s 部署 kafka 集群
ack ingress获取客户端客户端真实IP
ingress 反向代理 ws
本文档使用 MrDoc 发布
-
+
首页
抓取配置说明
# 腾讯的说明文档 写的很好 https://cloud.tencent.com/document/product/1416/55995 # Pod Monitor ``` # Prometheus Operator CRD 版本 apiVersion: monitoring.coreos.com/v1 # 对应 K8S 的资源类型,这里面 Pod Monitor kind: PodMonitor # 对应 K8S 的 Metadata,这里只用关心 name,如果没有指定 jobLabel,对应抓取指标 label 中 job 的值为 <namespace>/<name> metadata: name: redis-exporter # 填写一个唯一名称 namespace: cm-prometheus # namespace不固定,除kube-system下的任意namespace都可以 labels: prom_id: prom-xxx # 描述抓取目标 Pod 的选取及抓取任务的配置 spec: # 填写对应 Pod 的 label,pod monitor 会取对应的值作为 job label 的值。 # 如果查看的是 Pod Yaml,取 pod.metadata.labels 中的值。 # 如果查看的是 Deployment/Daemonset/Statefulset,取 spec.template.metadata.labels。 [ jobLabel: string ] # 把对应 Pod 上的 Label 添加到 Target 的 Label 中 [ podTargetLabels: []string ] # 一次抓取数据点限制,0:不作限制,默认为 0 [ sampleLimit: uint64 ] # 一次抓取 Target 限制,0:不作限制,默认为 0 [ targetLimit: uint64 ] # 配置需要抓取暴露的 Prometheus HTTP 接口,可以配置多个 Endpoint podMetricsEndpoints: [ - <endpoint_config> ... ] # 详见下面 endpoint 说明 # 选择要监控 Pod 所在的 namespace,不填为选取所有 namespace [ namespaceSelector: ] # 是否选取所有 namespace [ any: bool ] # 需要选取 namespace 列表 [ matchNames: []string ] # 填写要监控 Pod 的 Label 值,以定位目标 Pod [K8S metav1.LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#labelselector-v1-meta) selector: [ matchExpressions: array ] [ example: - {key: tier, operator: In, values: [cache]} ] [ matchLabels: object ] [ example: k8s-app: redis-exporter ] ``` ## 例子 ``` apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: redis-exporter # 填写一个唯一名称 namespace: cm-prometheus # namespace不固定,除kube-system下的任意namespace都可以 labels: prom_id: prom-xxx # 配置您的实例 ID spec: podMetricsEndpoints: - interval: 30s port: metric-port # 填写pod yaml中Prometheus Exporter对应的Port的Name path: /metrics # 填写Prometheus Exporter对应的Path的值,不填默认/metrics relabelings: - action: replace sourceLabels: - instance regex: (.*) targetLabel: instance replacement: 'crs-xxxxxx' # 调整成对应的 Redis 实例 ID - action: replace sourceLabels: - instance regex: (.*) targetLabel: ip replacement: '1.x.x.x' # 调整成对应的 Redis 实例 IP namespaceSelector: # 选择要监控pod所在的namespace matchNames: - redis-test selector: # 填写要监控pod的Label值,以定位目标pod matchLabels: k8s-app: redis-exporter ``` # Service Monitor ``` # Prometheus Operator CRD 版本 apiVersion: monitoring.coreos.com/v1 # 对应 K8S 的资源类型,这里面 Service Monitor kind: ServiceMonitor # 对应 K8S 的 Metadata,这里只用关心 name,如果没有指定 jobLabel,对应抓取指标 label 中 job 的值为 Service 的名称。 metadata: name: redis-exporter # 填写一个唯一名称 namespace: cm-prometheus # namespace不固定,除kube-system下的任意namespace labels: prom_id: prom-xxx # 配置您的实例 ID # 描述抓取目标 Pod 的选取及抓取任务的配置 spec: # 填写对应 Pod 的 label(metadata/labels),service monitor 会取对应的值作为 job label 的值 [ jobLabel: string ] # 把对应 service 上的 Label 添加到 Target 的 Label 中 [ targetLabels: []string ] # 把对应 Pod 上的 Label 添加到 Target 的 Label 中 [ podTargetLabels: []string ] # 一次抓取数据点限制,0:不作限制,默认为 0 [ sampleLimit: uint64 ] # 一次抓取 Target 限制,0:不作限制,默认为 0 [ targetLimit: uint64 ] # 配置需要抓取暴露的 Prometheus HTTP 接口,可以配置多个 Endpoint endpoints: [ - <endpoint_config> ... ] # 详见下面 endpoint 说明 # 选择要监控 Pod 所在的 namespace,不填为选取所有 namespace [ namespaceSelector: ] # 是否选取所有 namespace [ any: bool ] # 需要选取 namespace 列表 [ matchNames: []string ] # 填写要监控 Pod 的 Label 值,以定位目标 Pod [K8S metav1.LabelSelector](https://v1-17.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/#labelselector-v1-meta) selector: [ matchExpressions: array ] [ example: - {key: tier, operator: In, values: [cache]} ] [ matchLabels: object ] [ example: k8s-app: redis-exporter ] ``` ## 例子 ``` apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: go-demo # 填写一个唯一名称 namespace: cm-prometheus # namespace不固定,除 kube-system 下的任意namespace labels: prom_id: prom-xxx # 配置您的实例 ID spec: endpoints: - interval: 30s # 填写service yaml中Prometheus Exporter对应的Port的Name port: 8080-8080-tcp # 填写Prometheus Exporter对应的Path的值,不填默认/metrics path: /metrics relabelings: # ** 必须要有一个 label 为 application,这里假设 k8s 有一个 label 为 app, # 我们通过 relabel 的 replace 动作把它替换成了 application - action: replace sourceLabels: [__meta_kubernetes_pod_label_app] targetLabel: application # 选择要监控service所在的namespace namespaceSelector: matchNames: - golang-demo # 填写要监控service的Label值,以定位目标service selector: matchLabels: app: golang-app-demo ```
admin
2023年11月3日 01:06
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码