Вчера, Я создал полнофункциональный пример , который использует 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 кластер выглядит зеленым:
По-видимому, это воспроизводимая проблема, поскольку я могу воссоздать ее, используя ту же Terraform и команды.