Ошибка с сервера (не допустимо): неизвестно - PullRequest
0 голосов
/ 29 июня 2018

Вчера, Я создал полнофункциональный пример , который использует Terraform для создания сети и кластера GKE в Google Cloud Platform. Все это работает в Vagrant на виртуальной машине CentOS 7 и устанавливает gcloud, kubectl и helm. Я также расширил пример , чтобы использовать Helm для установки Spinnaker.

Кластер GKE называется gke-test-1. В моей документации я задокументировал получение kubectl setup:

gcloud container clusters get-credentials --region=us-west1 gke-test-1

После этого я смог использовать различные команды kubectl для get nodes, get pods, get services и get deployments, а также все другие команды управления кластером. Я также смог использовать Helm для установки Tiller и в конечном итоге развернуть Spinnaker.

Однако сегодня тот же процесс не работает для меня. Я запускал сеть, подсеть, кластер GKE и пул узлов, и всякий раз, когда я пытаюсь использовать команды для получения различных ресурсов, я получаю такой ответ:

[vagrant@katyperry vagrant]$ kubectl get nodes
No resources found.
Error from server (NotAcceptable): unknown (get nodes)
[vagrant@katyperry vagrant]$ kubectl get pods
No resources found.
Error from server (NotAcceptable): unknown (get pods)
[vagrant@katyperry vagrant]$ kubectl get services
No resources found.
Error from server (NotAcceptable): unknown (get services)
[vagrant@katyperry vagrant]$ kubectl get deployments
No resources found.
Error from server (NotAcceptable): unknown (get deployments.extensions)

Интересно, что какая-то команда работает:

[vagrant@katyperry vagrant]$ kubectl describe nodes | head
Name:               gke-gke-test-1-default-253fb645-scq8
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/fluentd-ds-ready=true
                    beta.kubernetes.io/instance-type=n1-standard-4
                    beta.kubernetes.io/os=linux
                    cloud.google.com/gke-nodepool=default
                    failure-domain.beta.kubernetes.io/region=us-west1
                    failure-domain.beta.kubernetes.io/zone=us-west1-b
                    kubernetes.io/hostname=gke-gke-test-1-default-253fb645-scq8

Когда я открываю оболочку в консоли Google Cloud, после выполнения той же команды входа в систему я могу использовать kubectl для выполнения всего вышеперечисленного:

naftuli_kay@naftuli-test:~$ gcloud beta container clusters get-credentials gke-test-1 --region us-west1 --project naftuli-test
Fetching cluster endpoint and auth data.
kubeconfig entry generated for gke-test-1.
naftuli_kay@naftuli-test:~$ kubectl get pods
No resources found.
naftuli_kay@naftuli-test:~$ kubectl get nodes
NAME                                   STATUS    ROLES     AGE       VERSION
gke-gke-test-1-default-253fb645-scq8   Ready     <none>    40m       v1.8.10-gke.0
gke-gke-test-1-default-253fb645-tfns   Ready     <none>    40m       v1.8.10-gke.0
gke-gke-test-1-default-8bf306fc-n8jz   Ready     <none>    40m       v1.8.10-gke.0
gke-gke-test-1-default-8bf306fc-r0sq   Ready     <none>    40m       v1.8.10-gke.0
gke-gke-test-1-default-aecb57ba-85p4   Ready     <none>    40m       v1.8.10-gke.0
gke-gke-test-1-default-aecb57ba-n7n3   Ready     <none>    40m       v1.8.10-gke.0
naftuli_kay@naftuli-test:~$ kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.0.64.1    <none>        443/TCP   43m
naftuli_kay@naftuli-test:~$ kubectl get deployments
No resources found.

Единственное отличие, которое я вижу, - это разница между kubectl версией; Vagrant имеет последнюю версию 1.11.0, а консоль Google Cloud - 1.9.7.

Я попытаюсь понизить рейтинг.

Это известная проблема, и что, если что-нибудь, я могу сделать, чтобы обойти это?


РЕДАКТИРОВАТЬ: Это воспроизводимо, и я не могу найти способ предотвратить его повторение. Я разрушил всю свою инфраструктуру, а затем снова поднял ее. Terraform доступен здесь здесь .

После предоставления ресурсов я подождал, пока кластер сообщит о работоспособности:

[vagrant@katyperry vagrant]$ gcloud container clusters describe \
    --region=us-west1 gke-test-1 | grep -oP '(?<=^status:\s).*'
RUNNING

Затем я настраиваю свои учетные данные для входа:

[vagrant@katyperry vagrant]$ gcloud container clusters get-credentials \
    --region=us-west1 gke-test-1

Я снова попытался получить узлы:

[vagrant@katyperry vagrant]$ kubectl get nodes
No resources found.
Error from server (NotAcceptable): unknown (get nodes)

На панели инструментов Google Cloud кластер выглядит зеленым:

enter image description here

По-видимому, это воспроизводимая проблема, поскольку я могу воссоздать ее, используя ту же Terraform и команды.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Для вопроса получения Ошибка с сервера (NotAcceptable): неизвестно с kubectl get , операции говорят,

$ kubectl get pods

Ошибка с сервера (NotAcceptable): неизвестно (получить пакеты)

Я мог бы исправить это с помощью понижения моего локального kubectl по этой ссылке на стекопоток Понизить версию kubectl до версии minikube k8s , где команды, которые нужно соблюдать, даны для машин Linux, MacOS и Windows очень четко

0 голосов
/ 29 июня 2018

После успешного воспроизведения проблемы несколько раз путем уничтожения и воссоздания всей инфраструктуры, я обнаружил какой-то загадочный пост на GitLab , в котором упоминается проблема Kubernetes GitHub , которая, кажется, указывает:

... для обеспечения совместимости с серверами 1.8.x (которые находятся в пределах поддерживаемой версии с +/- одной версией)

Акцент на "+/- one version."

Обновление мастеров и рабочих до Kubernetes 1.10 , кажется, полностью решило проблему, так как теперь я могу безнаказанно перечислять узлы и модули:

[vagrant@katyperry vagrant]$ kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.0", GitCommit:"91e7b4fd31fcd3d5f436da26c980becec37ceefe", GitTreeState:"clean", BuildDate:"2018-06-27T20:17:28Z", GoVersion:"go1.10.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.4-gke.2", GitCommit:"eb2e43842aaa21d6f0bb65d6adf5a84bbdc62eaf", GitTreeState:"clean", BuildDate:"2018-06-15T21:48:39Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}
[vagrant@katyperry vagrant]$ kubectl get nodes
NAME                                   STATUS    ROLES     AGE       VERSION
gke-gke-test-1-default-5989a78d-dpk9   Ready     <none>    42s       v1.10.4-gke.2
gke-gke-test-1-default-5989a78d-kh9b   Ready     <none>    58s       v1.10.4-gke.2
gke-gke-test-1-default-653ba633-091s   Ready     <none>    46s       v1.10.4-gke.2
gke-gke-test-1-default-653ba633-4zqq   Ready     <none>    46s       v1.10.4-gke.2
gke-gke-test-1-default-848661e8-cv53   Ready     <none>    53s       v1.10.4-gke.2
gke-gke-test-1-default-848661e8-vfr6   Ready     <none>    52s       v1.10.4-gke.2

Похоже, что облачная оболочка Google Cloud Platform привязывается к kubectl 1,9, что находится в пределах разрыва версий, поддерживаемого изложенными выше идеями.

К счастью, в репозитории Kubernetes RHEL есть множество версий на выбор, поэтому можно закрепить:

[vagrant@katyperry gke]$ yum --showduplicates list kubectl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.usc.edu
 * epel: sjc.edge.kernel.org
 * extras: mirror.sjc02.svwh.net
 * updates: mirror.linuxfix.com
Installed Packages
kubectl.x86_64                                          1.11.0-0                                          @kubernetes
Available Packages
kubectl.x86_64                                          1.5.4-0                                           kubernetes
kubectl.x86_64                                          1.6.0-0                                           kubernetes
kubectl.x86_64                                          1.6.1-0                                           kubernetes
kubectl.x86_64                                          1.6.2-0                                           kubernetes
kubectl.x86_64                                          1.6.3-0                                           kubernetes
kubectl.x86_64                                          1.6.4-0                                           kubernetes
kubectl.x86_64                                          1.6.5-0                                           kubernetes
kubectl.x86_64                                          1.6.6-0                                           kubernetes
kubectl.x86_64                                          1.6.7-0                                           kubernetes
kubectl.x86_64                                          1.6.8-0                                           kubernetes
kubectl.x86_64                                          1.6.9-0                                           kubernetes
kubectl.x86_64                                          1.6.10-0                                          kubernetes
kubectl.x86_64                                          1.6.11-0                                          kubernetes
kubectl.x86_64                                          1.6.12-0                                          kubernetes
kubectl.x86_64                                          1.6.13-0                                          kubernetes
kubectl.x86_64                                          1.7.0-0                                           kubernetes
kubectl.x86_64                                          1.7.1-0                                           kubernetes
kubectl.x86_64                                          1.7.2-0                                           kubernetes
kubectl.x86_64                                          1.7.3-1                                           kubernetes
kubectl.x86_64                                          1.7.4-0                                           kubernetes
kubectl.x86_64                                          1.7.5-0                                           kubernetes
kubectl.x86_64                                          1.7.6-1                                           kubernetes
kubectl.x86_64                                          1.7.7-1                                           kubernetes
kubectl.x86_64                                          1.7.8-1                                           kubernetes
kubectl.x86_64                                          1.7.9-0                                           kubernetes
kubectl.x86_64                                          1.7.10-0                                          kubernetes
kubectl.x86_64                                          1.7.11-0                                          kubernetes
kubectl.x86_64                                          1.7.14-0                                          kubernetes
kubectl.x86_64                                          1.7.15-0                                          kubernetes
kubectl.x86_64                                          1.7.16-0                                          kubernetes
kubectl.x86_64                                          1.8.0-0                                           kubernetes
kubectl.x86_64                                          1.8.1-0                                           kubernetes
kubectl.x86_64                                          1.8.2-0                                           kubernetes
kubectl.x86_64                                          1.8.3-0                                           kubernetes
kubectl.x86_64                                          1.8.4-0                                           kubernetes
kubectl.x86_64                                          1.8.5-0                                           kubernetes
kubectl.x86_64                                          1.8.6-0                                           kubernetes
kubectl.x86_64                                          1.8.7-0                                           kubernetes
kubectl.x86_64                                          1.8.8-0                                           kubernetes
kubectl.x86_64                                          1.8.9-0                                           kubernetes
kubectl.x86_64                                          1.8.10-0                                          kubernetes
kubectl.x86_64                                          1.8.11-0                                          kubernetes
kubectl.x86_64                                          1.8.12-0                                          kubernetes
kubectl.x86_64                                          1.8.13-0                                          kubernetes
kubectl.x86_64                                          1.8.14-0                                          kubernetes
kubectl.x86_64                                          1.9.0-0                                           kubernetes
kubectl.x86_64                                          1.9.1-0                                           kubernetes
kubectl.x86_64                                          1.9.2-0                                           kubernetes
kubectl.x86_64                                          1.9.3-0                                           kubernetes
kubectl.x86_64                                          1.9.4-0                                           kubernetes
kubectl.x86_64                                          1.9.5-0                                           kubernetes
kubectl.x86_64                                          1.9.6-0                                           kubernetes
kubectl.x86_64                                          1.9.7-0                                           kubernetes
kubectl.x86_64                                          1.9.8-0                                           kubernetes
kubectl.x86_64                                          1.10.0-0                                          kubernetes
kubectl.x86_64                                          1.10.1-0                                          kubernetes
kubectl.x86_64                                          1.10.2-0                                          kubernetes
kubectl.x86_64                                          1.10.3-0                                          kubernetes
kubectl.x86_64                                          1.10.4-0                                          kubernetes
kubectl.x86_64                                          1.10.5-0                                          google-cloud-sdk
kubectl.x86_64                                          1.10.5-0                                          kubernetes
kubectl.x86_64                                          1.11.0-0                                          kubernetes

РЕДАКТИРОВАТЬ: Я нашел фактический запрос на извлечение, который упоминает эту несовместимость . Я также нашел в примечаниях к выпуску следующую информацию:

kubectl: Для этой версии клиента требуется API apps/v1, поэтому он не будет работать с кластерной версией, более старой, чем v1.9.0. Обратите внимание, что kubectl гарантирует совместимость только с кластерами, которые имеют +/- [одну] минорную версию.

TL; DR

Вся эта проблема заключалась в несовместимости kubectl 1.11 и Kubernetes 1.8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...