排查 GKE 中的可伸缩性问题

etcd 数据库使用率过高可能会导致集群不稳定和资源短缺,从而阻止 Google Kubernetes Engine (GKE) 集群有效伸缩。

本文档介绍了如何识别 etcd 使用量即将达到上限的集群,并提供了有关释放空间的建议,以帮助确保集群保持稳定。

对于负责维护 GKE 集群的健康状况和可伸缩性的平台管理员和运维人员,此信息非常重要。如需详细了解我们在 Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE 用户角色和任务

本文档介绍了如何排查与 etcd 使用率过高相关的集群稳定性问题。如果您遇到其他可伸缩性问题,以下文档可能会有所帮助:

确定 etcd 使用量即将达到限额的集群

GKE 会针对 etcd 使用量即将达到限额的情况提供分析洞见和建议。您可以通过以下方式查看这些数据分析和建议:

  • 使用 Google Cloud 控制台。 前往 Kubernetes 集群页面。在特定集群的通知列中,查看释放空间以降低集群不稳定的风险建议。
  • 使用 gcloud CLI,或者通过指定 ETCD_DB_USAGE_APPROACHING_LIMIT Recommender 子类型使用 Recommender API。

    如需查询此建议,请运行以下命令:

    gcloud recommender recommendations list \
        --recommender=google.container.DiagnosisRecommender \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=yaml \
        --filter="recommenderSubtype:ETCD_DB_USAGE_APPROACHING_LIMIT"
    

如需实现此建议,请从 etcd 中移除所有不必要的数据,以释放空间。这可能涉及删除旧资源或将大型对象移出 etcd。如需了解详情,请参阅规划大型 GKE 集群

确定每个对象类型的存储空间用量即将达到限额的集群

如果每种类型的 etcd 对象的总大小接近限制,GKE 会提供相关分析洞见和建议。您可以通过以下方式查看这些数据分析和建议:

  • 使用 Google Cloud 控制台。 前往 Kubernetes 集群页面。在特定集群的通知列中,查看缩减资源类型的大小建议。
  • 使用 gcloud CLI,或者通过指定 APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT Recommender 子类型使用 Recommender API。

    如需查询此建议,请运行以下命令:

    gcloud recommender recommendations list \
        --recommender=google.container.DiagnosisRecommender \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=yaml \
        --filter="recommenderSubtype:APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT"
    

    如需确定要移除哪些对象,您可以使用 kubectl 列出这些对象。例如,如果 ConfigMap 即将达到存储空间上限,以下命令将输出所有命名空间中的所有 ConfigMap,帮助您确定要删除的对象:

    kubectl get configmaps --all-namespaces > new_file.txt
    

如需实施此建议并释放空间,请从存储空间中移除指定类型的任何不必要的对象。此过程可能涉及删除旧资源或将大型对象移出存储空间。如需了解详情,请参阅规划大型 GKE 集群

后续步骤