Что может привести к тому, что сервер API Kubernetes не сможет записать конфигурационную карту ЦС клиента?

Я обнаружил, что сервер Kubernetes API не запускается во время начальной загрузки кластера со следующим журналом ошибок, по-видимому, из-за невозможности инициализировать его «конфигурационную карту ЦС клиента»:

E1029 14:35:56.211083       5 client_ca_hook.go:78] Timeout: request did not complete within allowed duration
F1029 14:35:56.211121       5 hooks.go:126] PostStartHook “ca-registration” failed: unable to initialize client CA configmap: timed out waiting for the condition

Кажется, это происходит здесь в Kubernetes. исходный код. Что может вызвать эту ошибку?

Полный журнал смотрите здесь.

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

$ sudo ETCDCTL_API=3 etcdctl --cacert=/opt/tectonic/tls/etcd-client-ca.crt \
--cert=/opt/tectonic/tls/etcd-client.crt --key=/opt/tectonic/tls/etcd-client.key \
--endpoints=https://coreos-testing-etcd-0.socialfoodie.club:2379 \
endpoint health
https://coreos-testing-etcd-0.socialfoodie.club:2379 is unhealthy: failed to connect: grpc: timed out when dialing
Error:  unhealthy cluster

person aknuds1    schedule 01.11.2017    source источник
comment
Нужно исправить ссылку на журнал.   -  person johnharris85    schedule 01.11.2017
comment
@johnharris85 Ох, спасибо!   -  person aknuds1    schedule 01.11.2017
comment
Сетевое подключение к etcd? Как выглядит ваша кластерная арка?   -  person johnharris85    schedule 01.11.2017
comment
Спасибо за интерес к этому @johnharris85! Мне было интересно, может ли apiserver подключиться к etcd самостоятельно. Знаете ли вы, как проверить подключение узла apiserver (главного) к кластеру etcd? Что касается кластерной арки, я использую свой порт Tectonic Installer для DigitalOcean: github.com/ aknuds1/tectonic-installer/tree/digitalocean. Дайте мне знать, если вам нужна дополнительная информация с моей стороны!   -  person aknuds1    schedule 02.11.2017
comment
@ johnharris85 В ходе тестирования я обнаружил, что действительно не могу получить доступ к etcd с моего главного узла, хотя он работает с одной из машин-членов etcd. Я добавил информацию об этом в свой вопрос.   -  person aknuds1    schedule 02.11.2017
comment
@ johnharris85 Кажется, я нашел причину. Главный узел имеет устаревшую версию ЦС etcd из-за проблемы с синхронизацией в моей настройке Terraform. Сейчас работаю над решением этой проблемы...   -  person aknuds1    schedule 02.11.2017


Ответы (1)


Я обнаружил, что, несмотря на загадочное сообщение об ошибке на сервере API, причина в том, что он не может записать в кластер etcd. Причина заключалась в том, что сервер API был настроен с другим центром сертификации клиентов, чем тот, который использовал кластер etcd, из-за проблемы со временем. копирование сертификатов в моей настройке кластера Terraform. Я понял, что проблема была в ЦС, используя curl для связи с кластером etcd вместо etcdctl, поскольку он выдавал четкое сообщение об ошибке.

Спасибо @johnharris85 за предположение, что подключение etcd является проблемой!

person aknuds1    schedule 04.11.2017