Все команды kubectl (например, kubectl get pods и kubectl proxy et c.) Не работают с ошибкой, сообщающей, что они не могут подключиться к серверу kubernetes api (api.services.ourdomainname.com).
Что могло вызвать это:
Мы пытались добавить еще один узел в кластер для увеличения емкости. Для этого мы выполнили следующие команды ...
$ kops edit ig --name=ppe.services.ourdomainname.com nodes
$ kops upgrade cluster --name ppe.services.ourdomainname.com --yes
$ kops update cluster ppe.services.ourdomainname.com --yes
$ kops rolling-update cluster --yes
Проблема произошла после того, как я попытался выполнить обновление. По существу, обновление обновления не удалось при обновлении главного узла.
WARNING: Deleting pods not managed by ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet: etcd-server-events-ip-xx-xx-60-141.us-west-2.compute.internal, etcd-server-ip-xx-xx-60-141.us-west-2.compute.internal, kube-apiserver-ip-xx-xx-60-141.us-west-2.compute.internal, kube-controller-manager-ip-xx-xx-60-141.us-west-2.compute.internal, kube-proxy-ip-xx-xx-60-141.us-west-2.compute.internal, kube-scheduler-ip-xx-xx-60-141.us-west-2.compute.internal
pod "dns-controller-xxxx03014-fq2sj" evicted
pod "masked-tapir-aws-cluster-autoscaler-xxxx6cf8f-fpcqq" evicted
pod "kubernetes-dashboard-3313488171-t578p" evicted
node "ip-xx-xx-60-141.us-west-2.compute.internal" drained
I0501 17:30:23.679575 31176 instancegroups.go:237] Stopping instance "i-024deccc522cc2bf7", node "ip-xxx-xx-60-141.us-west-2.compute.internal", in group "master-us-west-2a.masters.ppe.services.ourdomainname.com".
I0501 17:35:24.345270 31176 instancegroups.go:161] Validating the cluster.
I0501 17:35:54.345805 31176 instancegroups.go:209] Cluster did not validate, will try again in "30s" util duration "5m0s" expires: cannot get nodes for "ppe.services.ourdomainname.com": Get https://api.ppe.services.ourdomainname.com/api/v1/nodes: dial tcp xx.xx.147.151:443: i/o timeout. ...
error validating cluster after removing a node: cluster did not validate within a duation of "5m0s"
После этого kubectl перестал работать. Основываясь на некоторых раскопках, мы запустили kops rolling-update cluster --yes --cloudonly
. Это удалило старые узлы Ec2 и добавило новые узлы EC2. Но не решил проблемы. И сделал это хуже. Ранее наши приложения могли получать доступ к нашим серверам, но после запуска этой команды теперь даже наши приложения не могут получить доступ к серверам. По сути, он сломал точку входа nginx, и теперь AWS ELB начал возвращать 500, заявляя, что не может подключиться. Из-за этого наши живые сервисы не работают! : - (
Есть мысли о том, что делать, чтобы исправить кластер kubernetes? Есть ли способы узнать, почему недоступен сервер API k8s? Что мы можем сделать, чтобы восстановить это соединение? Большое спасибо за вашу помощь.