GKE 集群指向不可用的 apiservice v1beta1.metrics.k8s.io

GKE clusters point to unavailable apiservice v1beta1.metrics.k8s.io

如何重现问题:

启动一个新的 GKE 集群(使用 UI 或 CLI),一旦集群准备就绪,列出所有可用的 api 服务。请参阅下面的输出,如您所见,v1beta1.metrics.k8s.io 由于缺少端点而被标记为不可用。

这经常会扰乱我们基础设施的自动设置,因为在安装过程中设置轮廓入口失败。您可以在 K8S Slack / Contour / GKE 频道中找到更多信息:https://kubernetes.slack.com/archives/C09R1TL6A/p1600084503124400

kubectl get apiservices
NAME                                   SERVICE                      AVAILABLE                  AGE
v1.                                    Local                        True                       75s
v1.admissionregistration.k8s.io        Local                        True                       75s
v1.apiextensions.k8s.io                Local                        True                       75s
v1.apps                                Local                        True                       75s
v1.authentication.k8s.io               Local                        True                       75s
v1.authorization.k8s.io                Local                        True                       75s
v1.autoscaling                         Local                        True                       75s
v1.batch                               Local                        True                       75s
v1.cloud.google.com                    Local                        True                       9s
v1.coordination.k8s.io                 Local                        True                       75s
v1.networking.k8s.io                   Local                        True                       75s
v1.rbac.authorization.k8s.io           Local                        True                       75s
v1.scheduling.k8s.io                   Local                        True                       75s
v1.storage.k8s.io                      Local                        True                       75s
v1alpha1.migration.k8s.io              Local                        True                       34s
v1alpha1.nodemanagement.gke.io         Local                        True                       33s
v1beta1.admissionregistration.k8s.io   Local                        True                       75s
v1beta1.apiextensions.k8s.io           Local                        True                       75s
v1beta1.authentication.k8s.io          Local                        True                       75s
v1beta1.authorization.k8s.io           Local                        True                       75s
v1beta1.batch                          Local                        True                       75s
v1beta1.certificates.k8s.io            Local                        True                       75s
v1beta1.cloud.google.com               Local                        True                       9s
v1beta1.coordination.k8s.io            Local                        True                       75s
v1beta1.discovery.k8s.io               Local                        True                       75s
v1beta1.extensions                     Local                        True                       75s
v1beta1.metrics.k8s.io                 kube-system/metrics-server   False (MissingEndpoints)   39s
v1beta1.networking.gke.io              Local                        True                       36s
v1beta1.networking.k8s.io              Local                        True                       75s
v1beta1.node.k8s.io                    Local                        True                       75s
v1beta1.policy                         Local                        True                       75s
v1beta1.rbac.authorization.k8s.io      Local                        True                       75s
v1beta1.scheduling.k8s.io              Local                        True                       75s
v1beta1.snapshot.storage.k8s.io        Local                        True                       35s
v1beta1.storage.k8s.io                 Local                        True                       75s
v1beta2.networking.gke.io              Local                        True                       36s
v2beta1.autoscaling                    Local                        True                       75s
v2beta2.autoscaling                    Local                        True                       75s

这不是GKE端的bug吗?

您可以通过以下方式报告 Google 产品的问题 link:

您需要选择:Compute 部分下的 Create new Google Kubernetes Engine issue


我可以确认我在创建 new GKE 集群时偶然发现了同样的问题:

v1beta1.metrics.k8s.io                 kube-system/metrics-server   False (FailedDiscoveryCheck)   54s

我在以下 GKE 版本上测试了此行为:

  • 静态版本:
    • 1.15.12-gke.2
  • 发布渠道:
    • 常规频道 - 1.16.13-gke.1
    • 快速通道-1.17.9-gke.1504

步骤:

  • 创建一个GKE集群
  • 运行 $ gcloud container clusters get-credentials CLUSTER-NAME --zone=ZONE-NAME
  • 运行 $ kubectl get apiservices 当 UI 显示 Ready 状态时

群集状态为 Ready

  • Cloud Console
  • $ gcloud container clusters list

这个问题持续了 3090 秒,具体取决于使用的集群版本。

示例:

  • $ kubectl get apiservices
NAME                                   SERVICE                      AVAILABLE                      AGE
v1.                                    Local                        True                           99s
v1.admissionregistration.k8s.io        Local                        True                           99s
v1.apiextensions.k8s.io                Local                        True                           99s
v1.apps                                Local                        True                           99s
v1.authentication.k8s.io               Local                        True                           99s
v1.authorization.k8s.io                Local                        True                           99s
v1.autoscaling                         Local                        True                           98s
v1.batch                               Local                        True                           98s
v1.cloud.google.com                    Local                        True                           12s
v1.coordination.k8s.io                 Local                        True                           98s
v1.networking.k8s.io                   Local                        True                           98s
v1.rbac.authorization.k8s.io           Local                        True                           98s
v1.scheduling.k8s.io                   Local                        True                           98s
v1.storage.k8s.io                      Local                        True                           98s
v1alpha1.migration.k8s.io              Local                        True                           50s
v1alpha1.nodemanagement.gke.io         Local                        True                           49s
v1alpha1.scalingpolicy.kope.io         Local                        True                           51s
v1beta1.admissionregistration.k8s.io   Local                        True                           99s
v1beta1.apiextensions.k8s.io           Local                        True                           99s
v1beta1.authentication.k8s.io          Local                        True                           99s
v1beta1.authorization.k8s.io           Local                        True                           99s
v1beta1.batch                          Local                        True                           98s
v1beta1.certificates.k8s.io            Local                        True                           98s
v1beta1.cloud.google.com               Local                        True                           12s
v1beta1.coordination.k8s.io            Local                        True                           98s
v1beta1.extensions                     Local                        True                           98s
v1beta1.metrics.k8s.io                 kube-system/metrics-server   False (FailedDiscoveryCheck)   54s
v1beta1.networking.gke.io              Local                        True                           50s
v1beta1.networking.k8s.io              Local                        True                           98s
v1beta1.node.k8s.io                    Local                        True                           98s
v1beta1.policy                         Local                        True                           98s
v1beta1.rbac.authorization.k8s.io      Local                        True                           98s
v1beta1.scheduling.k8s.io              Local                        True                           98s
v1beta1.storage.k8s.io                 Local                        True                           98s
v1beta2.networking.gke.io              Local                        True                           50s
v2beta1.autoscaling                    Local                        True                           98s
v2beta2.autoscaling                    Local                        True                           98s