Heapster — это инструмент мониторинга и управления производительностью с открытым исходным кодом для контейнерных сред, специально разработанный для Kubernetes. Однако, начиная с версии Kubernetes 1.11, Heapster устарел, а его функциональность была заменена сервером метрик. Сервер метрик теперь является рекомендуемым вариантом для сбора данных об использовании ресурсов в кластерах Kubernetes.
Поскольку Heapster больше не поддерживается и не рекомендуется, не рекомендуется использовать его в новых развертываниях. Вместо этого лучше перейти на сервер метрик или рассмотреть другие решения для мониторинга, совместимые с Kubernetes.
Поскольку Heapster устарел, использовать его больше не рекомендуется. Однако я могу предоставить вам альтернативные методы сбора данных мониторинга в Kubernetes с помощью сервера метрик или других популярных инструментов мониторинга.
- Использование сервера метрик.
Сервер метрик является преемником Heapster в Kubernetes и предоставляет важные данные об использовании ресурсов. Чтобы использовать Сервер метрик, вам необходимо проверить, установлен ли он уже в вашем кластере, выполнив следующую команду:
kubectl top node
Если команда возвращает данные об использовании ресурсов, это означает, что сервер метрик уже установлен. Если нет, вы можете установить его с помощью следующей команды:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
После установки сервера метрик вы можете получать данные об использовании ресурсов для узлов и модулей с помощью команды kubectl top:
kubectl top node
kubectl top pod
- Использование Prometheus.
Prometheus — это широко используемый набор инструментов для мониторинга и оповещения, который отлично интегрируется с Kubernetes. Чтобы использовать Prometheus для мониторинга Kubernetes, вам необходимо настроить сервер Prometheus и настроить его для сбора метрик из целевых объектов Kubernetes.
Во-первых, вам нужно будет развернуть Prometheus, используя файл манифеста YAML. Вот пример:
apiVersion: v1
kind: Service
metadata:
name: prometheus
spec:
selector:
app: prometheus
ports:
- protocol: TCP
port: 9090
targetPort: 9090
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: prometheus
spec:
selector:
matchLabels:
app: prometheus
replicas: 1
template:
metadata:
labels:
app: prometheus
spec:
containers:
- name: prometheus
image: prom/prometheus
args:
- --config.file=/etc/prometheus/prometheus.yml
ports:
- containerPort: 9090
protocol: TCP
volumeMounts:
- name: config-volume
mountPath: /etc/prometheus
volumes:
- name: config-volume
configMap:
name: prometheus-config
---
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
data:
prometheus.yml: |
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'kubernetes-apiservers'
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-nodes'
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __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
Сохраните приведенный выше манифест YAML в файл, например prometheus.yaml, и разверните его с помощью следующей команды:
kubectl apply -f prometheus.yaml
Это создаст сервер Prometheus, который будет собирать метрики с серверов и узлов Kubernetes API.
- Использование Grafana.
Grafana — популярный инструмент визуализации с открытым исходным кодом, который хорошо интегрируется с Prometheus. Вы можете использовать Grafana для создания информационных панелей и визуализации показателей, собранных Prometheus.
Чтобы использовать Grafana с Kubernetes и Prometheus, сначала необходимо развернуть Grafana в своем кластере. Вот пример YAML-манифеста:
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
spec:
selector:
matchLabels:
app: grafana
replicas: 1
template:
metadata:
labels:
app: grafana
spec:
containers:
-name: grafana
image: grafana/grafana
ports:
- containerPort: 3000
protocol: TCP
Сохраните приведенный выше манифест YAML в файл, например grafana.yaml, и разверните его с помощью следующей команды:
kubectl apply -f grafana.yaml
После развертывания Grafana вы сможете получить к нему доступ через службу или переадресацию портов. Чтобы получить к нему доступ через переадресацию портов, выполните следующую команду:
kubectl port-forward service/grafana 3000:3000
Теперь вы можете открыть браузер и получить доступ к Grafana по адресу http://localhost:3000. Вам нужно будет войти в систему с учетными данными по умолчанию (admin/admin) и немедленно изменить их.
После входа в систему вы можете настроить Prometheus в качестве источника данных в Grafana и создать информационные панели для визуализации показателей, собранных из Kubernetes.
В заключение отметим, что Heapster — устаревший инструмент мониторинга для Kubernetes, поэтому для сбора и визуализации данных мониторинга в Kubernetes рекомендуется использовать альтернативы, такие как Metrics Server, Prometheus и Grafana. Сервер метрик является вариантом по умолчанию для данных об использовании ресурсов, а Prometheus и Grafana предоставляют более расширенные возможности мониторинга и визуализации.