监控Debian上的Kubernetes(K8s)部署可以通过多种监控工具和方案来实现。以下是一些常用的方法和工具:
Prometheus-Operator是一个用于简化和自动化Prometheus在Kubernetes集群中部署和管理的工具。通过Prometheus-Operator,你可以使用ServiceMonitor和PodMonitor资源来监控Kubernetes集群中的应用和节点。
kubectl apply -f https://github.com/prometheus-community/helm-charts/releases/latest/download/prometheus-operator.tgz
创建一个prometheus-cfg.yaml
文件,定义Prometheus实例的基本配置信息,包括监控的目标和规则等。
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
namespace: monitor-sa
data:
prometheus.yml: |
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 1m
scrape_configs:
- job_name: 'kubernetes-node'
kubernetes_sd_configs:
- role: node
relabel_configs:
- source_labels: [__address__]
regex: '(.*):10250'
replacement: '{1}:9100'
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_node_label_(.)
- job_name: 'kubernetes-node-cadvisor'
kubernetes_sd_configs:
- role: node
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.)
target_label: __address__
- job_name: 'kubernetes-apiserver'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
- job_name: 'kubernetes-service-endpoints'
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
action: replace
target_label: __scheme__
regex: (https?)
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
action: replace
target_label: __address__
regex:d)?;(\d)
replacement: 1:2
- action: labelmap
regex: __meta_kubernetes_service_label_(.)
source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_service_name]
action: replace
target_label: kubernetes_name
kubectl apply -f prometheus-cfg.yaml
除了Prometheus-Operator,还有其他多种监控工具可以用于监控Kubernetes集群:
通过上述方法和工具,你可以有效地监控Debian上的Kubernetes部署,确保集群的高可用性和性能。