Kubernetes — SSL-сервер API

Я пытаюсь настроить кластер k8s с парой экземпляров Ubuntu на AWS.

я успешно установил

  • докер
  • кубелет
  • кубадм
  • кубектл и т. д.

IP-адреса машин такие. Они все в одной сети. Брандмауэр полностью включен. Я могу подключиться по телнету к порту 6443 и т. д.

IP и имена хостов

10.0.0.100 (ip-10-0-0-100.ca-central-1.compute.internal)
10.0.0.101 (ip-10-0-0-101.ca-central-1.compute.internal)
10.0.0.102 (ip-10-0-0-102.ca-central-1.compute.internal)

10.0.0.100:

Я выполнил эту команду

kubeadm init --apiserver-advertise-address=10.0.0.100 --pod-network-cidr=192.168.0.0/16

Он выпустил токен с командой соединения.

10.0.0.101:

Я выполнил команду присоединения к 10.0.0.101, и время ожидания истекло. (Свежий токен и срок его действия еще не истек)

Failed to request cluster-info, will try again: Get "https://10.0.0.100:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 

10.0.0.100:

Итак, я пытался получить доступ к главному узлу. API-сервер даже не был доступен на том же узле. даже через localhost:6443 не работает.

curl https://10.0.0.100:6443/api/v1/namespaces/kube-public/configmaps/cluster-info

Получение ниже ошибки.

curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

Интересно это работает.

curl -k https://10.0.0.100:6443/api/v1/namespaces/kube-public/configmaps/cluster-info

Что может быть причиной?


nslookup ip показывает что-то вроде этого.

nslookup 10.0.0.101
101.0.0.10.in-addr.arpa name = ip-10-0-0-101.ca-central-1.compute.internal.

Authoritative answers can be found from:

когда вы пытаетесь получить доступ к apiserver напрямую с помощью curl, нам нужно передать cacert, cert & key, поэтому попробуйте эту команду на мастере ndde sudo curl --cacert /etc/kubernetes/pki/ca.crt --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt --key /etc/kubernetes/pki/apiserver-kubelet-client.key https://10.0.0.100:6443/v1/namespaces/kube-public/configmaps‌​/cluster-info

confused genius 20.12.2020 04:50

Что касается сбоя команды присоединения к кластеру, это выглядит как проблемы с поиском DNS. пожалуйста, добавьте cat /etc/hosts и hostname -f вывод к вопросу

confused genius 20.12.2020 04:57

@confusedgenius, ip-10-0-0-100.ca-central-1.compute.internal — это мастер

RamPrakash 20.12.2020 06:53

можете ли вы добавить результаты в сам вопрос, чтобы форматирование было легче читать

confused genius 20.12.2020 07:08

@confusedgenius обновлен.

RamPrakash 20.12.2020 07:14
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
5
849
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

нам нужно проверить две вещи:

  1. работает ли apiserver или не использует завиток от главного узла:
sudo curl --cacert /etc/kubernetes/pki/ca.crt --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt --key /etc/kubernetes/pki/apiserver-kubelet-client.key https://10.0.0.100:6443/v1/namespaces/kube-public/configmaps/cluster-info
  1. нормально ли работает разрешение имен между узлами:
  • следующие команды необходимо запустить на всех узлах для проверки:
nslookup 10.0.0.101 
nslookup 10.0.0.100
nslookup 10.0.0.102
  • если nslookup разрешает эти IP-адреса, вам необходимо добавить следующие записи в файл /etc/hosts на всех узлах:
10.0.0.100 ip-10-0-0-100.ca-central-1.compute.internal
10.0.0.101 ip-10-0-0-101.ca-central-1.compute.internal
10.0.0.102 ip-10-0-0-102.ca-central-1.compute.internal
  • после обновления файла /etc/hosts повторите проверку с помощью команд nslookup:
nslookup 10.0.0.101 
nslookup 10.0.0.100
nslookup 10.0.0.102
  • попробуйте повторно добавить узел с помощью команды соединения

Другие вопросы по теме