Кубернетес на Лазурном: коннектекс
Следуйте инструкциям по ссылке, чтобы создать кластер K8s с помощью портала Azure. Попытался использовать kubectl на удаленной машине, чтобы проверить, работает ли он. Получил эту ошибку.
Невозможно подключиться к серверу: наберите tcp 13.90.35.157:443: connectex: Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить.
Я могу SSH к мастеру K8s. Пытался kubectl get nodes
от мастера и получил аналогичную ошибку.
2 ответа
Из такого описания действительно трудно сказать, что пошло не так, но поскольку это новый кластер (и я говорю это потому, что иногда кластер k8s развертывается, но на самом деле не работает, поэтому), я бы предложил удалить его и создание нового и / или его создание с помощью облачной оболочки Azure Cli\Azure.
В основном это так просто, как:
az acs create -n acs-cluster -g acsrg1 -d applink789 --generate-ssh-keys
если у вас есть созданная группа ресурсов, если нет, вы можете создать ее с помощью:
az group create -n acsrg1 -l "westus"
Согласно вашему описанию, вы, кажется, неправильно настроили Принципала Сервиса. Я использую неверный принципал службы для развертывания K8S в Azure, получаю ту же ошибку:
C:\Users>kubectl get nodes
Unable to connect to the server: dial tcp 13.90.27.73:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
Возможно, вам придется проверить, чтобы убедиться, что учетные данные были предоставлены точно, и что у настроенного участника службы есть разрешения на чтение и запись для целевой подписки. Если ваш Сервисный принципал настроен неправильно, ни один из компонентов kubernetes не будет работать исправно. Мы можем проверить, если это проблема:
root@k8s-master-6FEE48E1-0:~# journalctl -u kubelet | grep --text autorest
Если вы видите вывод, который выглядит следующим образом, это означает, что вы неправильно настроили принципала службы.
root@k8s-master-6FEE48E1-0:~# journalctl -u kubelet | grep --text autorest
Jun 01 01:58:47 k8s-master-6FEE48E1-0 docker[5522]: E0601 01:58:47.447321 6028 kubelet.go:1186] Cannot get Node info: failed to get external ID from cloud provider: autorest#WithErrorUnlessStatusCode: POST https://login.microsoftonline.com/1fcf418e-66ed-4c99-9449-d8e18bf8737a/oauth2/token?api-version=1.0 failed with 400 Bad Request: StatusCode=400
Jun 01 01:58:47 k8s-master-6FEE48E1-0 docker[5522]: E0601 01:58:47.627128 6028 kubelet_node_status.go:70] Unable to construct api.Node object for kubelet: failed to get external ID from cloud provider: autorest#WithErrorUnlessStatusCode: POST https://login.microsoftonline.com/1fcf418e-66ed-4c99-9449-d8e18bf8737a/oauth2/token?api-version=1.0 failed with 400 Bad Request: StatusCode=400
Jun 01 01:58:47 k8s-master-6FEE48E1-0 docker[5522]: E0601 01:58:47.885092 6028 kubelet_node_status.go:70] Unable to construct api.Node object for kubelet: failed to get external ID from cloud provider: autorest#WithErrorUnlessStatusCode: POST https://login.microsoftonline.com/1fcf418e-66ed-4c99-9449-d8e18bf8737a/oauth2/token?api-version=1.0 failed with 400 Bad Request: StatusCode=400
Дополнительную информацию о том, как создать / настроить субъект-службу для кластера ACS-Engin Kubernetes, см. По этой ссылке.