Kubernetes(K8S)作為現代雲原生利用的核心平台,其集群的監控對確保利用的高可用性跟機能至關重要。以下是五大年夜熱點的K8S集群監控東西,它們可能幫助妳及時控制集群資本靜態。
1. Prometheus
Prometheus 是一個開源監控體系,以其機動的數據模型跟富強的查詢言語而馳名。它實用於大年夜範圍的監控場景,可能從各種源收集數據,包含Kubernetes API、cAdvisor、node-exporter等。
核心功能:
- 數據採集:經由過程Job從Kubernetes集群中採集數據。
- 數據存儲:將數據存儲在當地或遠程的時序數據庫中。
- 查詢言語:PromQL,用於查詢跟操縱監控數據。
- 可視化:與Grafana等可視化東西集成。
利用示例:
# Prometheus job設置示例
scrape_configs:
- job_name: 'kubernetes-apiserver'
static_configs:
- targets: ['<Kubernetes-APISERVER-IP>:<Kubernetes-APISERVER-PORT>']
2. Grafana
Grafana 是一個開源的可視化平台,用於監控跟分析時光序列數據。它支撐多種數據源,包含Prometheus、InfluxDB等,非常合適與Prometheus結合利用。
核心功能:
- 數據可視化:創建各種圖表、儀錶板跟面板。
- 告警:設置基於Prometheus的告警。
- 集成:與其他監控東西跟雲效勞集成。
利用示例:
{
"title": "Kubernetes Nodes",
"timezone": "browser",
"time": "now",
"timeFormat": "YYYY-MM-DDTHH:mm:ssZ",
"links": [],
"panels": [
{
"type": "graph",
"title": "CPU Usage",
"dataSource": "prometheus",
"yAxis": {
"label": "CPU %",
"min": 0,
"max": 100
},
"xAxis": {
"label": "Time"
},
"tooltip": {
"shared": true
},
"targets": [
{
"expr": "cpu_usage",
"format": "time"
}
]
}
]
}
3. Metrics Server
Metrics Server 是Kubernetes集群的資本利用情況聚合器。它從每個節點的Kubelet API收集指標,並經由過程Kubernetes API效勞器公開這些數據。
核心功能:
- 資本利用監控:供給節點跟Pod的資本利用率指標。
- kubectl top:經由過程kubectl top命令檢查節點跟Pod的資本利用情況。
- HPA:支撐程度Pod主動擴大年夜(HPA)。
利用示例:
# Metrics Server deployment設置示例
apiVersion: v1
kind: ServiceAccount
metadata:
name: metrics-server
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: metrics-server
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:aggregated-metrics-reader
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: metrics-server
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
k8s-app: metrics-server
template:
metadata:
labels:
k8s-app: metrics-server
spec:
containers:
- name: metrics-server
image: k8s.gcr.io/metrics-server/metrics-server:v0.4.1
command:
- /metrics-server
- --kubelet-insecure-tls
4. cAdvisor
cAdvisor 是一個分析容器資本利用情況的東西。它可能幫助妳懂得容器的機能,包含CPU、內存、磁盤跟收集利用情況。
核心功能:
- 容器監控:監控單個或多個容器的資本利用情況。
- 機能分析:分析容器的機能瓶頸。
- 日記記錄:記錄容器的機能數據跟日記。
利用示例:
# 啟動cAdvisor
docker run -d --name cadvisor --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /sys:/sys -v /var/run:/var/run gcr.io/google_containers/cadvisor:latest
5. Node Exporter
Node Exporter 是一個輕量級的監控體系,用於收集Linux效勞器的各種指標,包含CPU、內存、磁盤跟收集利用情況。
核心功能:
- 效勞器監控:收集效勞器的硬件跟操縱體系信息。
- 數據導出:將數據導出到Prometheus或其他監控東西。
利用示例:
# 安裝Node Exporter
sudo apt-get update
sudo apt-get install node-exporter
# 啟動Node Exporter
sudo systemctl start node-exporter
sudo systemctl enable node-exporter
經由過程這些熱點的K8S集群監控東西,妳可能單方面監控集群的運轉狀況,及時發明並處理成績,確保集群的牢固性跟高機能。