The metrics-server component collects resource metrics and helps you monitor resource usage data in the cluster. The ack-arms-prometheus component is a resource monitoring tool used by Application Real-Time Monitoring Service (ARMS) Prometheus to monitor Container Service for Kubernetes (ACK) clusters. This topic provides answers to some frequently asked questions about metrics-server and ack-arms-prometheus.

TypeIssue
FAQ about metrics-server
FAQ about ack-arms-prometheus

Why is no data returned after I run the kubectl top pod or kubectl top node command?

Perform the following checks:

  1. Run the following command to check whether the metrics-server API service works as normal:
    kubectl get apiservices
    metris

    If the output shows that v1beta1.metrics.k8s.io is True, it indicates that the metrics-server API service works as normal.

  2. Optional:If the metrics-server API service does not work as normal, run the following command on the node where metrics-server is deployed to check whether metrics-server can be accessed through port 443 and port 8082 within the cluster:
    curl -v 127.0.0.1:8082/apis/metrics/v1alpha1/nodes

    If data is returned after you run the preceding command, it indicates that metrics-server can be accessed through port 443 and port 8082 within the cluster.

  3. Optional:If metrics-server cannot be accessed through port 443 or port 8082 within the cluster, restart metrics-server.
    You can delete the pod that runs metrics-server to restart metrics-server.
    1. Log on to the ACK console and click Clusters in the left-side navigation pane.
    2. On the Clusters page, click the name of a cluster and choose Workloads > Deployments in the left-side navigation pane.
    3. In the upper part of the Deployments page, set Namespace to kube-system and then click metrics-server.
    4. On the Pods tab, select the pod of metrics-server and choose More > Delete in the Actions column.
    5. In the Note dialog box, click OK.

If no error is found after you perform the preceding checks, use the following ticket template to submit a ticket.

Ticket template
  1. Does the metrics-server API service work as normal?

    Yes, the metrics-server API service works as normal.

  2. Can metrics-server be accessed through port 443 and port 8082 within the cluster?

    Yes, metrics-server can be accessed through port 443 and port 8082 within the cluster.

  3. Provide the cluster ID in the ticket.

Why is data missing after I run the kubectl top pod or kubectl top node command?

Perform the following checks:
  • Check whether the data of all pods on a node is missing or only the data of some pods is missing. If the data of all pods on a specific node is missing, check whether a timezone difference exists on the node. You can run the ntpdate command to synchronize the time.
  • Check whether the pod that runs metrics-server can connect to the node through port 10255.

If no error is found after you perform the preceding checks, use the following ticket template to submit a ticket.

Ticket template
  1. Is the missing data about all pods on a specific node?

    Yes, the missing data is about all pods on a specific node.

  2. Does a timezone difference exist on the node?

    No.

  3. Can metrics-server connect to the specific node?

    Yes, metrics-server can connect to the specific node.

Why is Horizontal Pod Autoscaler (HPA) unable to retrieve metrics?

Perform the following checks:

Run the kubectl top pod pod-id command to check whether metrics about specific pods are returned. If the output returns no data or missing data, perform the steps introduced in the preceding sections to troubleshoot.

If no error is found after you perform the preceding checks, use the following ticket template to submit a ticket.

Ticket template
  1. Does the monitoring data show anomalies?

    No, the monitoring data does not show anomalies.

  2. Run the kubectl describe hpa hpa-name command and provide the metadata in the ticket.

Why are excess pods added by HPA during a rolling update?

Perform the following checks:

Check whether metrics-server is upgraded to the latest version. If metrics-server is upgraded to the latest version, set the following startup parameters in the kube-system namespace for the pod that runs metrics-server.
--metric-resolution=15s
--enable-hpa-rolling-update-skipped=true

If no error is found after you perform the preceding checks, use the following ticket template to submit a ticket.

Ticket template
  1. Is metrics-server upgraded to the latest version?

    Yes, metrics-server is upgraded to the latest version.

  2. Are startup parameters added to prevent excess pods?

    Yes, startup parameters are added.

  3. Run the kubectl describe hpa hpa-name command and provide the HPA description in the ticket.

What do I do if I fail to install ack-arms-prometheus after the Component Not Installed message is returned?

  • Check whether ack-arms-prometheus is already installed.
    1. Log on to the ACK console and click Clusters in the left-side navigation pane.
    2. On the Clusters page, find the cluster that you want to manage. Then, click the name of the cluster or click Details in the Actions column.
    3. In the left-side navigation pane of the cluster details page, choose Applications > Helm.

      On the Helm page, check whether ack-arms-prometheus is displayed.

      • If ack-arms-prometheus is displayed on the Helm page, perform the following steps:

        Delete ack-arms-prometheus on the Helm page and then install ack-arms-prometheus on the Add-ons page. For more information about how to install ack-arms-prometheus, see Manage system components.

      • If ack-arms-prometheus is not displayed on the Helm page, perform the following steps:
        1. If ack-arms-prometheus is not displayed on the Helm page, it indicates that residual data exists after ack-arms-prometheus is deleted. You must manually delete the residual data. For more information about how to delete the residual data of ack-arms-prometheus, see FAQ about ARMS Prometheus.
        2. Install ack-arms-prometheus on the Add-ons page. For more information about how to install ack-arms-prometheus, see Manage system components.
        3. If the issue persists, submit a ticket.
  • Check whether errors are found in the log of ack-arms-prometheus.
    1. Log on to the ACK console and click Clusters in the left-side navigation pane.
    2. On the Clusters page, click the name of a cluster and choose Workloads > Deployments in the left-side navigation pane.
    3. In the upper part of the Deployments page, set Namespace to arms-prom and then click arms-prometheus-ack-arms-prometheus.
    4. Click the Logs tab and check whether errors are found in the log.

      If errors are reported in the log, submit a ticket.

  • Check whether installation errors are reported by the ARMS agent.
    1. Log on to the ARMS console.
    2. In the top navigation bar, select the region where your ACK cluster is deployed from the drop-down list.
    3. In the left-side navigation pane, click Prometheus Monitoring.
    4. On the Prometheus Monitoring page, click the name of a Kubernetes cluster.
    5. In the left-side navigation pane, click Settings. On the page that appears, click the Settings tab.

      On the Agent Settings tab, you can find the health check result. If errors are reported in the log, submit a ticket.

What do I do if the xxx in use error occurs when I install ack-arms-prometheus?

  1. Log on to the ACK console and click Clusters in the left-side navigation pane.
  2. On the Clusters page, find the cluster that you want to manage. Then, click the name of the cluster or click Details in the Actions column.
  3. In the left-side navigation pane of the cluster details page, choose Applications > Helm.
    On the Helm page, check whether ack-arms-prometheus is displayed.
    • If ack-arms-prometheus is displayed on the Helm page, perform the following steps:

      Delete ack-arms-prometheus on the Helm page and then install ack-arms-prometheus on the Add-ons page. For more information about how to install ack-arms-prometheus, see Manage system components.

    • If ack-arms-prometheus is not displayed on the Helm page, perform the following steps:
      1. If ack-arms-prometheus is not displayed on the Helm page, it indicates that residual data exists after ack-arms-prometheus is deleted. You must manually delete the residual data. For more information about how to delete residual data about ack-arms-prometheus, see FAQ about ARMS Prometheus.
      2. Install ack-arms-prometheus on the Add-ons page. For more information about how to install ack-arms-prometheus, see Manage system components.
      3. If the issue persists, submit a ticket.