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
这个问题持续了 30
到 90
秒,具体取决于使用的集群版本。
示例:
$ 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
如何重现问题:
启动一个新的 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
这个问题持续了 30
到 90
秒,具体取决于使用的集群版本。
示例:
$ 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