Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/
Cloud Container Engine/
Guia de usuário/
Observabilidade/
Monitoramento/
Monitoramento de métricas dos componentes do nó principais
Atualizado em 2024-11-28 GMT+08:00
Monitoramento de métricas dos componentes do nó principais
Exibir métricas dos componentes do nó principal
O complemento kube-prometheus-stack (Monitoramento de cluster da nuvem nativa) da versão 3.5.0 ou posterior pode monitorar e coletar métricas de kube-apiserver, kube-controller, kube-schedule e etcd-server nos nós principais.
- Instale o kube-prometheus-stack da versão 3.5.0 ou posterior em seu cluster. Para mais detalhes, consulte Monitoramento de cluster da nuvem nativa.
- Após a instalação, aguarde até que todas as instâncias complementares estejam em execução.
- Crie um serviço de rede pública do Serviço LoadBalancer para o Prometheus. Digite load balancer public IP: Service port na caixa de endereço do navegador para acessar o Prometheus. Para obter detalhes, consulte Acesso do Prometheus.
- Escolha Status > Targets. Os componentes de nó principal anteriores são exibidos.
Coletar métricas dos componentes do nó principal usando Prometheus autoconstruído
Esta seção descreve como coletar as métricas dos componentes do nó principal usando o prometheus autoconstruído.
![](https://support.huaweicloud.com/intl/pt-br/usermanual-cce/public_sys-resources/notice_3.0-pt-br.png)
- A versão do cluster deve ser 1.19 ou posterior.
- O prometheus-operator deve ser instalado no cluster. Para obter detalhes, consulte Operador de Prometheus.
- Prometheus autoconstruído deve ser instalado no cluster. Para obter detalhes, consulte Gráficos do Helm da comunidade de Prometheus. O complemento de prometheus (Prometheus (EOM)) está em fim de manutenção e não suporta esta função. Portanto, evite usar esse complemento.
- Use kubectl para se conectar ao cluster.
- Modifique o ClusterRole de Prometheus.
kubectl edit ClusterRole prometheus -n {namespace}
Adicione o seguinte conteúdo sob o campo rules:rules: ... - apiGroups: - proxy.exporter.k8s.io resources: - "*" verbs: ["get", "list", "watch"]
- Crie um arquivo chamado kube-apiserver.yaml e edite-o.
vi kube-apiserver.yaml
Exemplo de conteúdo do arquivo:apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app.kubernetes.io/name: apiserver name: kube-apiserver namespace: monitoring # Change it to the namespace where Prometheus will be installed. spec: endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token interval: 30s metricRelabelings: - action: keep regex: (aggregator_unavailable_apiservice|apiserver_admission_controller_admission_duration_seconds_bucket|apiserver_admission_webhook_admission_duration_seconds_bucket|apiserver_admission_webhook_admission_duration_seconds_count|apiserver_client_certificate_expiration_seconds_bucket|apiserver_client_certificate_expiration_seconds_count|apiserver_current_inflight_requests|apiserver_request_duration_seconds_bucket|apiserver_request_total|go_goroutines|kubernetes_build_info|process_cpu_seconds_total|process_resident_memory_bytes|rest_client_requests_total|workqueue_adds_total|workqueue_depth|workqueue_queue_duration_seconds_bucket|aggregator_unavailable_apiservice_total|rest_client_request_duration_seconds_bucket) sourceLabels: - __name__ - action: drop regex: apiserver_request_duration_seconds_bucket;(0.15|0.25|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2.5|3|3.5|4.5|6|7|8|9|15|25|30|50) sourceLabels: - __name__ - le port: https scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt serverName: kubernetes jobLabel: component namespaceSelector: matchNames: - default selector: matchLabels: component: apiserver provider: kubernetes
Crie um ServiceMonitor:
kubectl apply -f kube-apiserver.yaml
- Crie um arquivo chamado kube-controller.yaml e edite-o.
vi kube-controller.yaml
Exemplo de conteúdo do arquivo:apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app.kubernetes.io/name: kube-controller name: kube-controller-manager namespace: monitoring # Change it to the namespace where Prometheus will be installed. spec: endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token interval: 15s honorLabels: true port: https relabelings: - regex: (.+) replacement: /apis/proxy.exporter.k8s.io/v1beta1/kube-controller-proxy/${1}/metrics sourceLabels: - __address__ targetLabel: __metrics_path__ - regex: (.+) replacement: ${1} sourceLabels: - __address__ targetLabel: instance - replacement: kubernetes.default.svc.cluster.local:443 targetLabel: __address__ scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt jobLabel: app namespaceSelector: matchNames: - kube-system selector: matchLabels: app: kube-controller-proxy version: v1
Crie um ServiceMonitor:
kubectl apply -f kube-controller.yaml
- Crie um arquivo chamado kube-scheduler.yaml e edite-o.
vi kube-scheduler.yaml
Exemplo de conteúdo do arquivo:apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app.kubernetes.io/name: kube-scheduler name: kube-scheduler namespace: monitoring # Change it to the namespace where Prometheus will be installed. spec: endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token interval: 15s honorLabels: true port: https relabelings: - regex: (.+) replacement: /apis/proxy.exporter.k8s.io/v1beta1/kube-scheduler-proxy/${1}/metrics sourceLabels: - __address__ targetLabel: __metrics_path__ - regex: (.+) replacement: ${1} sourceLabels: - __address__ targetLabel: instance - replacement: kubernetes.default.svc.cluster.local:443 targetLabel: __address__ scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt jobLabel: app namespaceSelector: matchNames: - kube-system selector: matchLabels: app: kube-scheduler-proxy version: v1
Crie um ServiceMonitor:
kubectl apply -f kube-scheduler.yaml
- Crie um arquivo chamado etcd-server.yaml e edite-o.
vi etcd-server.yaml
Exemplo de conteúdo do arquivo:apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app.kubernetes.io/name: etcd-server name: etcd-server namespace: monitoring # Change it to the namespace where Prometheus will be installed. spec: endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token interval: 15s honorLabels: true port: https relabelings: - regex: (.+) replacement: /apis/proxy.exporter.k8s.io/v1beta1/etcd-server-proxy/${1}/metrics sourceLabels: - __address__ targetLabel: __metrics_path__ - regex: (.+) replacement: ${1} sourceLabels: - __address__ targetLabel: instance - replacement: kubernetes.default.svc.cluster.local:443 targetLabel: __address__ scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt jobLabel: app namespaceSelector: matchNames: - kube-system selector: matchLabels: app: etcd-server-proxy version: v1
Crie um ServiceMonitor:
etcd-server.yaml
- Após a criação, se você tiver criado um Serviço LoadBalancer de rede pública para Prometheus, poderá acessar load balancer public IP: Service port para acessar o Prometheus.
- Escolha Status > Targets. Os componentes de nó principal anteriores são exibidos.
Tópico principal: Monitoramento
Feedback
Esta página foi útil?
Deixar um comentário
Obrigado por seus comentários. Estamos trabalhando para melhorar a documentação.
O sistema está ocupado. Tente novamente mais tarde.