Если вам нужна помощь или вы думаете, что нашли ошибку, пожалуйста, помогите нам с вашей проблемой, введя следующую информацию (в противном случае вы можете удалить этот текст):
Вывод helm version
:
version.BuildInfo {Версия: "v3.0 + unreleased", GitCommit: "180db556aaf45f34516f8ddb9ddac28d71736a3e", GitTreeState: "clean", GoVersion: "go1.13"}
Вывод kubectl version
:
Версия lient: version.Info {Major: "1", Minor: "15", GitVersion: "v1.15.3", GitCommit: "2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState: "clean", BuildDate: "2019-08-19T12: 28Z ", GoVersion:" go1.12.9 ", компилятор:" gc ", платформа:" darwin / amd64 "}
Версия сервера: version.Info {Major: «1», Minor: «15», GitVersion: «v1.15.3 + IKS», GitCommit: «66a72e7aa8fd2dbf64af493f50f943d7f7067916», GitTreeState: «clean», BuildDate: «2019-08-23T» 07: 38Z ", GoVersion:" go1.12.9 ", компилятор:" gc ", платформа:" linux / amd64 "}
Облачный провайдер / платформа (AKS, GKE, Minikube и т. Д.):
IBM Cloud
Развертывание Helm-диаграммы завершается ошибкой:
➜ charts git:(h2update2) helm install vdc -f ~/etc/cloud-noes.yaml vdc <<<
coalesce.go:155: warning: skipped value for image: Not a table.
Error: could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: custom.metrics.k8s.io/v1beta1: the server is currently unable to handle the request
(Первая ошибка в сливной диаграмме ... здесь я обсуждаю вторую проблему)
Глядя на ошибку, я вижу аналогичную проблему с
➜ charts git:(h2update2) kubectl api-resources
NAME SHORTNAMES APIGROUP NAMESPACED KIND
bindings true Binding
componentstatuses cs false ComponentStatus
configmaps cm true ConfigMap
endpoints ep true Endpoints
events ev true Event
limitranges limits true LimitRange
namespaces ns false Namespace
nodes no false Node
persistentvolumeclaims pvc true PersistentVolumeClaim
persistentvolumes pv false PersistentVolume
pods po true Pod
podtemplates true PodTemplate
replicationcontrollers rc true ReplicationController
resourcequotas quota true ResourceQuota
secrets true Secret
serviceaccounts sa true ServiceAccount
services svc true Service
mutatingwebhookconfigurations admissionregistration.k8s.io false MutatingWebhookConfiguration
validatingwebhookconfigurations admissionregistration.k8s.io false ValidatingWebhookConfiguration
customresourcedefinitions crd,crds apiextensions.k8s.io false CustomResourceDefinition
apiservices apiregistration.k8s.io false APIService
controllerrevisions apps true ControllerRevision
daemonsets ds apps true DaemonSet
deployments deploy apps true Deployment
replicasets rs apps true ReplicaSet
statefulsets sts apps true StatefulSet
meshpolicies authentication.istio.io false MeshPolicy
policies authentication.istio.io true Policy
tokenreviews authentication.k8s.io false TokenReview
localsubjectaccessreviews authorization.k8s.io true LocalSubjectAccessReview
selfsubjectaccessreviews authorization.k8s.io false SelfSubjectAccessReview
selfsubjectrulesreviews authorization.k8s.io false SelfSubjectRulesReview
subjectaccessreviews authorization.k8s.io false SubjectAccessReview
horizontalpodautoscalers hpa autoscaling true HorizontalPodAutoscaler
metrics autoscaling.internal.knative.dev true Metric
podautoscalers kpa,pa autoscaling.internal.knative.dev true PodAutoscaler
cronjobs cj batch true CronJob
jobs batch true Job
images img caching.internal.knative.dev true Image
certificatesigningrequests csr certificates.k8s.io false CertificateSigningRequest
certificates cert,certs certmanager.k8s.io true Certificate
challenges certmanager.k8s.io true Challenge
clusterissuers certmanager.k8s.io false ClusterIssuer
issuers certmanager.k8s.io true Issuer
orders certmanager.k8s.io true Order
adapters config.istio.io true adapter
attributemanifests config.istio.io true attributemanifest
handlers config.istio.io true handler
httpapispecbindings config.istio.io true HTTPAPISpecBinding
httpapispecs config.istio.io true HTTPAPISpec
instances config.istio.io true instance
quotaspecbindings config.istio.io true QuotaSpecBinding
quotaspecs config.istio.io true QuotaSpec
rules config.istio.io true rule
templates config.istio.io true template
leases coordination.k8s.io true Lease
brokers eventing.knative.dev true Broker
channels chan eventing.knative.dev true Channel
clusterchannelprovisioners ccp eventing.knative.dev false ClusterChannelProvisioner
eventtypes eventing.knative.dev true EventType
subscriptions sub eventing.knative.dev true Subscription
triggers eventing.knative.dev true Trigger
events ev events.k8s.io true Event
daemonsets ds extensions true DaemonSet
deployments deploy extensions true Deployment
ingresses ing extensions true Ingress
networkpolicies netpol extensions true NetworkPolicy
podsecuritypolicies psp extensions false PodSecurityPolicy
replicasets rs extensions true ReplicaSet
channels ch messaging.knative.dev true Channel
choices messaging.knative.dev true Choice
inmemorychannels imc messaging.knative.dev true InMemoryChannel
sequences messaging.knative.dev true Sequence
nodes metrics.k8s.io false NodeMetrics
pods metrics.k8s.io true PodMetrics
certificates kcert networking.internal.knative.dev true Certificate
clusteringresses networking.internal.knative.dev false ClusterIngress
ingresses ing networking.internal.knative.dev true Ingress
serverlessservices sks networking.internal.knative.dev true ServerlessService
destinationrules dr networking.istio.io true DestinationRule
envoyfilters networking.istio.io true EnvoyFilter
gateways gw networking.istio.io true Gateway
serviceentries se networking.istio.io true ServiceEntry
sidecars networking.istio.io true Sidecar
virtualservices vs networking.istio.io true VirtualService
ingresses ing networking.k8s.io true Ingress
networkpolicies netpol networking.k8s.io true NetworkPolicy
poddisruptionbudgets pdb policy true PodDisruptionBudget
podsecuritypolicies psp policy false PodSecurityPolicy
clusterrolebindings rbac.authorization.k8s.io false ClusterRoleBinding
clusterroles rbac.authorization.k8s.io false ClusterRole
rolebindings rbac.authorization.k8s.io true RoleBinding
roles rbac.authorization.k8s.io true Role
authorizationpolicies rbac.istio.io true AuthorizationPolicy
clusterrbacconfigs rbac.istio.io false ClusterRbacConfig
rbacconfigs rbac.istio.io true RbacConfig
servicerolebindings rbac.istio.io true ServiceRoleBinding
serviceroles rbac.istio.io true ServiceRole
priorityclasses pc scheduling.k8s.io false PriorityClass
configurations config,cfg serving.knative.dev true Configuration
revisions rev serving.knative.dev true Revision
routes rt serving.knative.dev true Route
services kservice,ksvc serving.knative.dev true Service
apiserversources sources.eventing.knative.dev true ApiServerSource
awssqssources sources.eventing.knative.dev true AwsSqsSource
containersources sources.eventing.knative.dev true ContainerSource
cronjobsources sources.eventing.knative.dev true CronJobSource
githubsources sources.eventing.knative.dev true GitHubSource
kafkasources sources.eventing.knative.dev true KafkaSource
csidrivers storage.k8s.io false CSIDriver
csinodes storage.k8s.io false CSINode
storageclasses sc storage.k8s.io false StorageClass
volumeattachments storage.k8s.io false VolumeAttachment
clustertasks tekton.dev false ClusterTask
pipelineresources tekton.dev true PipelineResource
pipelineruns pr,prs tekton.dev true PipelineRun
pipelines tekton.dev true Pipeline
taskruns tr,trs tekton.dev true TaskRun
tasks tekton.dev true Task
error: unable to retrieve the complete list of server APIs: custom.metrics.k8s.io/v1beta1: the server is currently unable to handle the request
➜ charts git:(h2update2)
Затем, глядя на «action.go» в источнике, я вижу, что если этот вызов api завершается неудачно, мы выходим из getCapabilities (). Я понимаю, почему ... но не слишком ли "серьезен" этот сбой - в приведенном выше случае ошибка была незначительной?
Похоже, это произошло недавно из-за некоторых изменений в сервисе k8s с метриками.
Я буду настаивать на этом отдельно ... но я после размышлений о том, как Helm справляется с этой ситуацией.
Также на IKS может быть сломан хедз-ап helm3 - но я недостаточно осведомлен, чтобы копать дальше?
У меня такая же проблема с AKS, хотя сообщение об ошибке
Ошибка: не удалось получить apiVersions от Kubernetes: невозможно получить полный список серверных API: metrics.k8s.io/v1beta1: сервер в настоящее время не может обработать запрос
моя конфигурация:
Версия клиента: version.Info {Major: «1», Minor: «15», GitVersion: «v1.15.2», GitCommit: «f6278300bebbb750328ac16ee6dd3aa7d3549568», GitTreeState: «clean», BuildDate: «2019-08-05T09: 23: 26Z ", GoVersion:" go1.12.5 ", компилятор:" gc ", платформа:" windows / amd64 "}
Версия сервера: version.Info {Major: «1», Minor: «14», GitVersion: «v1.14.6», GitCommit: «96fac5cd13a5dc064f7d9f4f23030a6aeface6cc», GitTreeState: «clean», BuildDate: «2019-08-19T11: 05: 16Z ", GoVersion:" go1.12.9 ", компилятор:" gc ", платформа:" linux / amd64 "}
версия helm: alpine / helm: 3.0.0-beta.2 (докер)
kubectl api-ресурсы
NAME SHORTNAMES APIGROUP NAMESPACED KIND
bindings true Binding
componentstatuses cs false ComponentStatus
configmaps cm true ConfigMap
endpoints ep true Endpoints
events ev true Event
limitranges limits true LimitRange
namespaces ns false Namespace
nodes no false Node
persistentvolumeclaims pvc true PersistentVolumeClaim
persistentvolumes pv false PersistentVolume
pods po true Pod
podtemplates true PodTemplate
replicationcontrollers rc true ReplicationController
resourcequotas quota true ResourceQuota
secrets true Secret
serviceaccounts sa true ServiceAccount
services svc true Service
mutatingwebhookconfigurations admissionregistration.k8s.io false MutatingWebhookConfiguration
validatingwebhookconfigurations admissionregistration.k8s.io false ValidatingWebhookConfiguration
customresourcedefinitions crd,crds apiextensions.k8s.io false CustomResourceDefinition
apiservices apiregistration.k8s.io false APIService
controllerrevisions apps true ControllerRevision
daemonsets ds apps true DaemonSet
deployments deploy apps true Deployment
replicasets rs apps true ReplicaSet
statefulsets sts apps true StatefulSet
tokenreviews authentication.k8s.io false TokenReview
localsubjectaccessreviews authorization.k8s.io true LocalSubjectAccessReview
selfsubjectaccessreviews authorization.k8s.io false SelfSubjectAccessReview
selfsubjectrulesreviews authorization.k8s.io false SelfSubjectRulesReview
subjectaccessreviews authorization.k8s.io false SubjectAccessReview
horizontalpodautoscalers hpa autoscaling true HorizontalPodAutoscaler
cronjobs cj batch true CronJob
jobs batch true Job
certificatesigningrequests csr certificates.k8s.io false CertificateSigningRequest
leases coordination.k8s.io true Lease
events ev events.k8s.io true Event
daemonsets ds extensions true DaemonSet
deployments deploy extensions true Deployment
ingresses ing extensions true Ingress
networkpolicies netpol extensions true NetworkPolicy
podsecuritypolicies psp extensions false PodSecurityPolicy
replicasets rs extensions true ReplicaSet
ingresses ing networking.k8s.io true Ingress
networkpolicies netpol networking.k8s.io true NetworkPolicy
runtimeclasses node.k8s.io false RuntimeClass
poddisruptionbudgets pdb policy true PodDisruptionBudget
podsecuritypolicies psp policy false PodSecurityPolicy
clusterrolebindings rbac.authorization.k8s.io false ClusterRoleBinding
clusterroles rbac.authorization.k8s.io false ClusterRole
rolebindings rbac.authorization.k8s.io true RoleBinding
roles rbac.authorization.k8s.io true Role
priorityclasses pc scheduling.k8s.io false PriorityClass
csidrivers storage.k8s.io false CSIDriver
csinodes storage.k8s.io false CSINode
storageclasses sc storage.k8s.io false StorageClass
volumeattachments storage.k8s.io false VolumeAttachment
error: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request
Я считаю, что в моем случае эта проблема возникла недавно ... похоже, это связано с тем, что в моем случае установлен knative (в IBM Cloud IKS это управляемый вариант). Я удалил Knative, и сейчас все в порядке, но здесь может быть проблема с взаимодействием
@kalioz из интереса, вы используете Knative на AWS? На самом деле это выглядит не так, потому что я не вижу тектонных объектов
Я только что сам видел эту проблему. В моем случае проблема возникла из-за cert-manager. Все еще работаю над тем, как вернуть его в прежнее состояние.
@ planetf1 Я не использую knative (или думаю, что не использую), но проблема существует только в новом кластере, который я развернул для этого теста.
Отличия рабочего кластера от неработающего:
| | рабочий | нерабочий |
| --- | --- | --- |
| версия kube | 1.13.5 | 1.14.6 |
| аутентификация лазурного AD | отключена | включена |
| RBAC | отключено | включено |
Итак, у меня есть несколько серьезных изменений.
Для меня проблема в том, что helm3 вылетает из-за отсутствия доступа к некоторым API, которые не используются для диаграммы, которую я пытаюсь развернуть.
Я использую его на кластере k8 версии 1.13.9, такая же ошибка возникает при развертывании любого стабильного графика.
версия руля
version.BuildInfo {Версия: "v3.0.0-beta.3", GitCommit: "5cb923eecbe80d1ad76399aee234717c11931d9a", GitTreeState: "clean", GoVersion: "go1.12.9"}
helm.go: 81: [отладка] невозможно получить полный список серверных API: metrics.k8s.io/v1beta1: сервер в настоящее время не может обработать запрос.
После решения проблемы из модуля метрик (не могу вспомнить, как я его решил, я думаю, что это может быть связано с hostNetwork или просто перезапуском связанного модуля) helm3 функционирует должным образом.
Таким образом, это может быть `` функция '', поскольку она заставляет поддерживать кластер в хорошем состоянии, но для этого потребуется, чтобы кто-то вручную заходил в кластер каждый раз, когда api ломается (и, таким образом, может препятствовать использованию helm3 для развертывания модулей, которые могут быть перечислены на этом).
Это действительно очень раздражает, когда кто-то начинает работать с Kubernetes. Я вручную готовлю решение для сертификатов с помощью acme, так как я не могу гарантировать, что диспетчер сертификатов не будет работать даже после его настройки.
Действительно раздражает то, что я не могу просто использовать helm, чтобы удалить диспетчер сертификатов и вернуться туда, где я был! Все, что позволяет настоятельно рекомендуемой службе нарушить ее, но не отменяет изменения, не работает.
Для всех, кто сталкивается с этим, это вызвано api-сервисами, у которых больше не работает серверная часть ...
В моем случае это был KEDA, но существует ряд различных сервисов, которые устанавливают агрегированные серверы API.
Починить это:
kubectl get apiservice
Найдите те, которые AVAILABLE
равны False
Если вам больше не нужны эти API, удалите их:
kubectl delete apiservce <service-name>
Тогда Helm должен работать нормально. Я думаю, что улучшение сообщения об ошибке Helm для этого случая может быть полезным ...
Спасибо за объяснение - есть ли способ, которым Хельм тоже может это исправить?
Мы так думаем, хотя все еще ведем расследование. Мой первый взгляд показывает, что это связано только с нашим использованием Discovery API, который используется для объекта Capabilities
при отрисовке шаблона. Мы могли бы перехватить эту конкретную ошибку и предупредить пользователя, вместо того, чтобы терпеть неудачу.
То же самое с 2.15.0
сейчас:
Error: Could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request
Это очень раздражает. На самом деле было бы гораздо лучше предупредить, чем провалиться.
Есть какие-нибудь обновления по этому поводу?
РЕДАКТИРОВАТЬ: может ли s / o подтвердить, что 2.15
также затронуты? Тогда я бы предложил скорректировать метки этого билета.
@sjentzsch Я также вижу то же самое, используя Helm 2.15.0
и k8s 1.16.0
.
Если это также повлияет на 2.x, тогда всем, кто использует "cert-manager" (возможно, только предварительную настройку), будут плохие времена.
__ Здесь у нас есть два разных случая с одинаковым поведением со стороны руля.
Обе версии 2.15.1
и 3 beta
затронуты .__
Как упоминалось в @technosophos, helm использует функции API обнаружения и не работает, если какой-либо ответ API не удается https://github.com/helm/helm/blob/f1dc84773f9a34fe59a504fdb32428ce1d56a2e8/pkg/action/action.go#L105 -L118
admission.certmanager.k8s.io/v1beta1
cert-manager - хороший пример:kubectl get apiservice | grep certmanager
v1beta1.admission.certmanager.k8s.io service/cert-manager-webhook False (ServiceNotFound) 111d
и в этом случае вы можете легко исправить это с помощью kubectl delete apiservice v1beta1.admission.certmanager.k8s.io
как описано в @brendandburns .
В настоящее время он жив и работает, но случайно отключился во время запроса руля.
⇒ k get apiservice | grep metrics
v1beta1.metrics.k8s.io kube-system/metrics-server True 1y
Я уверен, что штурвал должен быть более надежным для такого рода проблем,
1) возможно, лучше преобразовать ошибку в предупреждение (я не знаю, как информация из службы api используется во время рендеринга шаблона)
2) реализовать повторы для такого типа запросов
У нас есть аналогичная проблема с 2.15.1 в Kubernetes 1.15.5, но НЕ с helm 2.14.3.
Проблема всплывает: некоторые диаграммы устанавливаются нормально, но потом начинают глючить.
Наше сообщение:
Error: Could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request: exit status 1
kubectl get apiservice
перечисляет metrics.k8s.io/v1beta1
как доступные. Возможно, у нас временная проблема с этим сервисом, но helm 2.14.3 на в основном идентичном кластере работает надежно.
Мы столкнулись с этой проблемой при попытке обновления до Helm 2.15.2 в кластере CI Charts. Так что проблема не только в Helm 3. Это исправило удаление отсутствующей службы API. Интересно, может ли Хельм быть здесь более изящным, тем более что это, вероятно, может появиться снова в любой момент.
Решите аналогичную проблему, установив диаграмму стабильного / метрик-сервера в кластере, установленном kubeadm.
Когда вы пытаетесь удалить диаграмму, удаление завершается с ошибкой api-server (потому что сервер метрик - fubar), и в результате остается масса болтающихся ресурсов, которые вам нужно очистить вручную - поскольку helm удалил выпуск в любом случае из своей базы данных.
$ helm version
version.BuildInfo{Version:"v3.0.0-rc.2", GitCommit:"82ea5aa774661cc6557cb57293571d06f94aff0c", GitTreeState:"clean", GoVersion:"go1.13.3"}
Недавно начал работать с этим в недавно созданных кластерах GKE, используя 2.15.1 (возможно, недавно был обновлен через Snap). Также сообщается как https://github.com/kubernetes/kubernetes/issues/72051#issuecomment -521157642. Кажется, что можно обойтись, если перед каждой командой helm install
вставлять:
kubectl --namespace=kube-system wait --for=condition=Available --timeout=5m apiservices/v1beta1.metrics.k8s.io
@jglick В вашем случае это происходит только при первом создании кластера?
Проблема кроется в самом клиенте обнаружения Kubernetes Go. Я экспериментирую с печатью предупреждения. Однако это может иметь негативные последствия для диаграмм, которые сильно зависят от объекта Capabilities.
В вашем случае это происходит только при первом создании кластера?
Да. У меня есть сценарий, который создает кластер, устанавливает Tiller и создает выпуски Helm. Так что это похоже на состояние гонки при инициализации кластера.
@jglick реализация, которую я сделал вчера, скорее всего, поможет вам избежать проблемы, если только вы не пишете диаграммы, которые напрямую ссылаются на группу API-интерфейсов.
@technosophos благодарит за это слияние. Думаю, это повысит устойчивость руля.
Есть ли у нас исправление для 2.15 / 2.16?
Это также можно увидеть в 2.16. GKE Master версия 1.14.8-гке.12.
Error: UPGRADE FAILED: Could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request
UPGRADE FAILED
в версии 2.16 нет исправлений. Если вы хотите перенести исправление из Helm 3, это будет долгожданное изменение.
Для пользователей GKE у Google возникают проблемы с heapster и metric-server. Это то, что вызывает сбои руля и объясняет, почему он иногда работает, а другие нет.
Event Start: 10/30/19
Affected Products:
Cloud Services
Description:
The issue with Google Kubernetes Engine experiencing an elevated rate of errors for heapster autoscaling is in the process of being mitigated and our Engineering Team is working to deploy new versions with a fix.
Once the fixed versions become available affected customers will be able to upgrade their clusters to receive the fix.
We will provide an update on the status of the fix by Wednesday, 2019-11-13 16:30 US/Pacific with current details. In the interim, if you have questions or are impacted, please open a case with the Support Team and we will work with you until this issue is resolved.
Steps to Reproduce:
Heapster deployment may be crashing due to inaccurate resource values and then fail to resize due to an invalid name reference in the heapster-nanny container. The logs for an affected clusters will show errors like the below under the heapster-nanny container logs:
ERROR: logging before flag.Parse: E1030 14:50:59.147245 1 nanny_lib.go:110] deployments.extensions "heapster-v1.7.X" not found
Workaround:
Manually add requests/limits to the heapster container under the heapster deployment::
kubectl -n kube-system edit deployment heapster
These values can be calculated as:
* cpu: 80m + 0.5m * number of nodes
* memory: 140Mi + 4Mi * number of nodes
Я просто использую helm 3.0.0 stable и столкнулся с проблемой:
Error: Could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: admission.certmanager.k8s.io/v1beta1: the server is currently unable to handle the request: exit status 1
Казалось, что apiservice работает нормально, потому что Availabiliy показывал "true" в kubectl get apiservices | grep certmanager
.
После "перезапуска" с kubectl delete apiservice v1beta1.admission.certmanager.k8s.io
проблема исчезла.
исправление было слито с основной веткой, но не с 3.0.0. Патч будет в версии 3.1.
Ищите те, которые ДОСТУПНЫ не соответствуют действительности
Если вам больше не нужны эти API, удалите их:
kubectl удалить apiservce
$ kubectl get apiservice
NAME SERVICE AVAILABLE AGE
v1. Local True 2d20h
v1.apps Local True 2d20h
v1.authentication.k8s.io Local True 2d20h
v1.authorization.k8s.io Local True 2d20h
v1.autoscaling Local True 2d20h
v1.batch Local True 2d20h
v1.coordination.k8s.io Local True 2d20h
v1.networking.k8s.io Local True 2d20h
v1.rbac.authorization.k8s.io Local True 2d20h
v1.scheduling.k8s.io Local True 2d20h
v1.storage.k8s.io Local True 2d20h
v1alpha3.compose.docker.com docker/compose-api False (ServiceNotFound) 2d19h
v1beta1.admissionregistration.k8s.io Local True 2d20h
v1beta1.apiextensions.k8s.io Local True 2d20h
v1beta1.apps Local True 2d20h
v1beta1.authentication.k8s.io Local True 2d20h
v1beta1.authorization.k8s.io Local True 2d20h
v1beta1.batch Local True 2d20h
v1beta1.certificates.k8s.io Local True 2d20h
v1beta1.compose.docker.com docker/compose-api False (ServiceNotFound) 2d19h
v1beta1.coordination.k8s.io Local True 2d20h
v1beta1.events.k8s.io Local True 2d20h
v1beta1.extensions Local True 2d20h
v1beta1.networking.k8s.io Local True 2d20h
v1beta1.node.k8s.io Local True 2d20h
v1beta1.policy Local True 2d20h
v1beta1.rbac.authorization.k8s.io Local True 2d20h
v1beta1.scheduling.k8s.io Local True 2d20h
v1beta1.storage.k8s.io Local True 2d20h
v1beta2.apps Local True 2d20h
v1beta2.compose.docker.com docker/compose-api False (ServiceNotFound) 2d19h
v2beta1.autoscaling Local True 2d20h
v2beta2.autoscaling Local True 2d20h
$ kubectl delete apiservce v1beta2.compose.docker.com
error: the server doesn't have a resource type "apiservce"
Windows 10, доксер для windows.
Я предполагаю, что в инструкции была опечатка. Наверное, должно быть
kubectl delete apiservice
(отсутствует i в обслуживании)
Мы также сталкиваемся с непоследовательным поведением при удалении. Например
Единственная часть «удаления», которая была завершена, - это удаление секрета выпуска.
PR, который исправил это, был здесь: https://github.com/helm/helm/pull/6908 См. Дополнительное обсуждение того, остается ли еще один дополнительный случай.
@ где мы можем
Если у кого-то есть возможность протестировать исправление Helm 2, то оно здесь: # 7196
@bacongobbler согласно вашему комментарию здесь https://github.com/helm/helm/issues/6361#issuecomment -554480815 вы знаете, когда будет доступна версия 3.1? Я только что установил 3.0.1 и все еще сталкиваюсь с проблемой - я был удивлен, что это исправление не вошло в v3.0.1, поскольку это, кажется, довольно распространенная проблема. Есть ли шанс, что он попадет в выпуск v3.0.x, если он будет до v3.1?
Тот же вопрос, что и @mcginne . Я уже немного использую основную ветку, ожидая, когда это исправление войдет в релиз. Но я бы хотел вернуться к выпуску. Эта ошибка затрудняет автоматизацию написания с помощью helm
(если только вы не хотите просто испытать удачу и повсюду поставить спящих и официантов).
Даже просто как 3.1alpha
или еще что-нибудь было бы неплохо :)
Закрытие этой проблемы, поскольку она решена на master
Еще один случай:
Error: failed to fetch api groups from kubernetes: unable to retrieve the complete list of server APIs: tap.linkerd.io/v1alpha1: the server is currently unable to handle the request
Это было связано с https://github.com/linkerd/linkerd2/issues/3497 , когда служба Linkerd имела некоторые внутренние проблемы и не могла отвечать на запросы службы API. Исправлено перезапуском его подов.
@ kivagant-ba, не могли бы вы открыть для этого новый номер? Это немного другой случай, и нам нужно решить, каким должно быть «правильное» поведение со стороны Хелма. Я думаю, что в текущем исправлении вышеуказанная ошибка будет по-прежнему считаться фатальной.
Для всех, кто сталкивается с этим, это вызвано api-сервисами, у которых больше не работает серверная часть ...
В моем случае это был KEDA, но существует ряд различных сервисов, которые устанавливают агрегированные серверы API.
Починить это:
kubectl get apiservice
Найдите те, которые
AVAILABLE
равныFalse
Если вам больше не нужны эти API, удалите их:
kubectl delete apiservice <service-name>
Тогда Helm должен работать нормально. Я думаю, что улучшение сообщения об ошибке Helm для этого случая может быть полезным ...
Небольшая поправка в написании слова «сервис». исправил.
не могли бы вы открыть для этого новый выпуск?
Это не проблема для людей, которые используют более новую версию Linkerd. Я оставил здесь свой комментарий для тех, кто будет искать фразу ошибки, потому что она похожа, но основная причина другая.
Ой! Хорошо. Спасибо!
@technosophos, что исправить? Должны ли мы выполнить grep kubectl get apiservice
а затем заблокировать, пока все службы не перейдут в состояние Ready
? Что мы могли бы сделать вместо этого?
Мы работаем над инструментом OSS, который устанавливает несколько диаграмм управления для начальной загрузки системы, и эта проблема, похоже, приводит к периодическим сбоям всего процесса.
Я только что столкнулся с этой проблемой при выполнении helm delete
. Это вызвало очень плохой эффект. Релиз Helm был удален, но все объекты K8s продолжали работать в кластере. Так что пришлось все снимать вручную. А так как это был оператор, это действие потребовало значительных усилий.
@andrewnazarov Пожалуйста, предоставьте дополнительную информацию о том, что вы пытались удалить и что произошло. Сообщения об ошибках были бы полезны, как и версия Helm, версия Kube и т. Д.
@alexellis Что именно вызывает проблему? Вы устанавливаете диаграмму Helm, которая устанавливает службу API, и задаетесь вопросом, как дождаться ее доступности? Короткий ответ заключается в том, что вам обязательно нужно будет разработать стратегию ожидания или, возможно, разбить ее на два графика. Kubernetes не дает нам большого количества инструментов, чтобы иметь возможность справляться с ошибками в API обнаружения, но если описание службы не поддерживается службой, вызов обнаружения обязательно завершится ошибкой _ и не вернет службу_ на карте, которую он возвращает.
Пожалуйста, предоставьте дополнительную информацию о том, что вы пытались удалить и что произошло. Сообщения об ошибках были бы полезны, как и версия Helm, версия Kube и т. Д.
Конечно.
Шлем: 3.0.0
K8s: 1.14.8
helm delete prom -n monitoring
завершился следующей ошибкой
Error: uninstallation completed with 1 error(s): could not get apiVersions from Kubernetes: could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: admission.stash.appscode.com/v1alpha1: the server is currently unable to handle the request, admission.stash.appscode.com/v1beta1: the server is currently unable to handle the request, repositories.stash.appscode.com/v1alpha1: the server is currently unable to handle the request
После этого релиз Helm исчез из списка релизов Helm, и все объекты, связанные с этим оператором Prometheus, стали сиротами.
Хорошо, понятно, это может быть проблема с версией. Обновит Helm до последней версии 3.0.2 как можно скорее.
Да, это определенно проблема несоответствия версий. Этот патч стал доступен в версии 3.0.2. В будущем обязательно используйте последнюю версию патча (или, что еще лучше, мастер-версию). Спасибо!
Если у вас возникнут дополнительные проблемы, откройте новый тикет.
kubectl get apiservice
Если одна из служб «AVAILABLE = false», вы можете попытаться удалить связанные модули, чтобы перезапустить их.
Это решило мою проблему с сервисом kube-system / metrics.
Привет @technosophos. Может быть, я что-то упустил, но я не вижу, чтобы этот PR https://github.com/helm/helm/pull/6908/files переносился на 2.16.3, хотя такое случается и с helm 2. Планируете ли вы перенести этот обходной путь и на Helm 2?
Несколько месяцев назад он был объединен с dev-v2
. Вы можете построить из этой ветки и протестировать ее, если хотите.
Было бы здорово, если бы это было включено в Helm 2 и провайдера Terraform . Я могу повторять эту ошибку каждый раз при создании кластера.
Вы тестировали ветку dev-v2
? В настоящее время у нас нет никаких подтверждений (кроме наших собственных тестов), что решение там работает, хотя, по сути, это то же самое решение.
У меня нет, я могу попробовать на этой неделе. Поскольку я использую это с Terraform, могу ли я создать / запустить ветку dev-v2
и установить для переменной репозитория ресурса helm_release значение "local"
для моделирования?
@bacongobbler. Мы столкнулись с той же проблемой с prometheus-adapter
которая предоставила настраиваемый apiservice, и если я не смогу выпустить с настраиваемым apiservice и kubectl get apiservice
любой из этого списка будет AVAILABLE = false Helm больше не сможет создавать новые выпустить, даже если это не связано с настраиваемым apiservice:
err="Could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: custom.metrics.k8s.io/v1beta1: the server is currently unable to handle the request"
Helm 2 с провайдером Terraform сейчас не работает из-за этой проблемы и. Надеюсь, вы также можете исправить это, похоже, это обычный вариант использования.
Могу подтвердить, что у меня тоже возникла эта проблема. Надеюсь на исправление.
Решение:
Я выполнил следующие шаги:
kubectl get apiservices
: Если служба сервера метрик не работает с ошибкой CrashLoopBackOff, попробуйте выполнить шаг 2, в противном случае просто попробуйте перезапустить службу сервера метрик с помощью kubectl delete apiservice/"service_name"
. Для меня это был v1beta1.metrics.k8s.io.
kubectl get pods -n kube-system
и обнаружил, что модули, такие как metrics-server, kubernetes-dashboard, не работают из-за отказа основного модуля coreDNS.
Для меня это было:
NAME READY STATUS RESTARTS AGE
pod/coredns-85577b65b-zj2x2 0/1 CrashLoopBackOff 7 13m
kubectl describe pod/"pod_name"
чтобы проверить ошибку в модуле coreDNS, и если он не работает из-за / etc / coredns / Corefile: 10 - Ошибка во время синтаксического анализа: Неизвестная директива прокси, тогда нам нужно использовать пересылку вместо прокси в yaml файл, в котором находится конфигурация coreDNS. Поскольку CoreDNS версии 1.5x, используемый изображением, больше не поддерживает ключевое слово proxy.
Самый полезный комментарий
Для всех, кто сталкивается с этим, это вызвано api-сервисами, у которых больше не работает серверная часть ...
В моем случае это был KEDA, но существует ряд различных сервисов, которые устанавливают агрегированные серверы API.
Починить это:
Найдите те, которые
AVAILABLE
равныFalse
Если вам больше не нужны эти API, удалите их:
Тогда Helm должен работать нормально. Я думаю, что улучшение сообщения об ошибке Helm для этого случая может быть полезным ...