Рейтинг:0

кластер etcd с обнаружением DNS — клиент: кластер etcd недоступен или неправильно настроен; Ошибка: неожиданный код состояния 404; dig SRV возвращает пустое значение

флаг cn

Я настраиваю etcd для загрузки с помощью обнаружения DNS, но он говорит, что сервер неправильно настроен и, похоже, запрашивает неправильный порт, а записи SRV кажутся неправильными.

Пожалуйста, не могли бы вы просмотреть ниже и увидеть мои вопросы в нижней части этого поста?


Характеристики

корневой домен: etcd.ksone

SRV-запись сервера:

_etcd-server-ssl._tcp.etcd.ksone SRV Простой —   
0 0 2380 etcd2.ksone
0 0 2380 etcd1.ksone 

клиентская SRV-запись:

_etcd-client-ssl._tcp.etcd.ksone SRV Простой —   
0 0 2379 etcd2.ksone
0 0 2379 etcd1.ksone

используя TLS: Истинный

Операционные системы:

[fedora@ip-10-0-0-245 ~]$ uname
линукс
[fedora@ip-10-0-0-245 ~]$ кот /etc/os-релиз
ИМЯ=Федора
ВЕРСИЯ="24 (двадцать четыре)"
ID=федора
VERSION_ID=24
PRETTY_NAME="Fedora 24 (двадцать четыре)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:24"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Федора"
REDHAT_BUGZILLA_PRODUCT_VERSION=24
REDHAT_SUPPORT_PRODUCT="Федора"
REDHAT_SUPPORT_PRODUCT_VERSION=24
PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy

версия etcdctl

[fedora@ip-10-0-0-245 ~]$ etcdctl --version
etcdctl версии 2.2.5

Список участников

Я пытаюсь перечислить участников, используя приведенную ниже команду, и получаю следующую ошибку:

bash-4.3# etcdctl --ca-file /etc/etcd/ca.pem --key-file /etc/etcd/kubernetes-key.pem --cert-file /etc/etcd/kubernetes.pem --discovery- srv etcd.ksone --список участников отладки

начать синхронизацию кластера с использованием конечных точек (https://etcd1.ksone.:2380, https://etcd2.ksone.:2380)
Команда cURL: curl -X ПОЛУЧИТЬ https://etcd1.ksone.:2380/v2/members
получил конечные точки () после синхронизации
Конечные точки кластера:
Команда cURL: curl -X GET /v2/members
клиент: кластер etcd недоступен или неправильно настроен

Состояние кластера

Точно так же я могу запросить состояние кластера с помощью следующей команды и вывода:

bash-4.3# etcdctl --ca-file /etc/etcd/ca.pem --key-file /etc/etcd/kubernetes-key.pem --cert-file /etc/etcd/kubernetes.pem --discovery- srv etcd.ksone --debug состояние кластера

Конечные точки кластера: https://etcd1.ksone.:2380, https://etcd2.ksone.:2380
===> ПРИМЕЧАНИЕ: ПЫТАЕТСЯ (НЕПРАВИЛЬНО?) НА ПОРТУ 2380 (СЕРВЕР) Команда cURL: curl -X GET https://etcd1.ksone.:2380/v2/members
кластер может быть неработоспособным: не удалось перечислить участников
Ошибка: неожиданный код состояния 404

SRV записи

Я настроил записи SRV следующим образом

  • список SRV для корневого домена, т.е. «etcd.ksone» (ожидаемый результат --> должен показывать полные записи SRV, но ничего не возвращает?):
 копать +noall +ответ SRV etcd.ksone

==> <в консоли нет вывода - пусто!>
  • перечислить SRV явно для сервера:
# копать +noall +ответ SRV _etcd-server-ssl._tcp.etcd.ksone


_etcd-сервер-ssl._tcp.etcd.ksone. 33 IN SRV 0 0 2380 etcd2.ksone.
_etcd-сервер-ssl._tcp.etcd.ksone. 33 IN SRV 0 0 2380 etcd1.ksone.
  • перечислить SRV явно для клиента:
/ # dig +noall +answer SRV _etcd-client-ssl._tcp.etcd.ksone


_etcd-client-ssl._tcp.etcd.ksone. 300 IN SRV 0 0 2379 etcd1.ksone.
_etcd-client-ssl._tcp.etcd.ksone. 300 IN SRV 0 0 2379 etcd2.ksone.

Явно попробуйте конечную точку клиента (УСПЕХ, но на самом деле не используя обнаружение DNS!)

bash-4.3# etcdctl --ca-file /etc/etcd/ca.pem --key-file /etc/etcd/kubernetes-key.pem --cert-file /etc/etcd/kubernetes.pem --debug - -конечная точка https://etcd1.ksone:2379 здоровье кластера


Конечные точки кластера: https://etcd1.ksone:2379
Команда cURL: curl -X ПОЛУЧИТЬ https://etcd1.ksone:2379/v2/members
участник 499073e22ac73562 здоров: получил здоровый результат от https://etcd1.ksone:2379
член b98d4fc780a787fe здоров: получил здоровый результат от https://etcd2.ksone:2379
кластер здоров

Настройка службы etcd

статус systemctl и т. д.



_ etcd.service - etcd
   Загружено: загружено (/etc/systemd/system/etcd.service; включено; настройка поставщика: отключена)
   Активно: активно (работает) с 01 августа 2021 г., 07:17:39 UTC; 1ч 23мин назад
     Документы: https://github.com/coreos
 Основной PID: 2363 (и т. д.)
    Заданий: 7 (лимит: 512)
   Группа CG: /system.slice/etcd.service
           __2363 /usr/bin/etcd --name etcd1.ksone --discovery-srv=etcd.ksone --initial-advertise-peer-urls https://etcd1.ksone:2380 --initial-cluster-token etcd-cluster -0 --initial-cluster-state new --advertise-client-urls https://etcd1.ksone:2379 --listen-client-urls https://etcd1.ksone:2379,http://127.0.0.1 :2379 --listen-peer-urls https://etcd1.ksone:2380 --data-dir=/var/lib/etcd/data --cert-file=/etc/etcd/kubernetes.pem --key- file=/etc/etcd/kubernetes-key.pem --peer-cert-file=/etc/etcd/kubernetes.pem --peer-key-file=/etc/etcd/kubernetes-key.pem --trusted- ca-file=/etc/etcd/ca.pem --peer-trusted-ca-file=/etc/etcd/ca.pem

01 августа, 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 стал кандидатом на 41 сроке
01 августа, 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 получил голос от 499073e22ac73562 на сроке 41
01 августа, 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 [logterm: 1, index: 2] отправил запрос на голосование на b98d4fc780a787fe на сроке 41
01 августа, 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 получил голос от b98d4fc780a787fe на сроке 41
01 августа, 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 [q:2] получил 2 голоса и 0 отклонений голосов
01 авг 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 стал лидером на сроке 41
01 августа, 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: raft.node: 499073e22ac73562 избранный лидер 499073e22ac73562 на сроке 41
01 августа, 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: опубликован {Name:etcd1.ksone ClientURLs:[https://etcd1.ksone:2379 ]} в кластер 1c370848b4697ef2
01 августа, 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: установка начальной версии кластера на 2.2
01 августа, 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: установите начальную версию кластера на 2.2

Резюме наблюдений

  • Механизм обнаружения на клиенте etcd не работает, о чем свидетельствует приведенная выше ошибка, т.е. кластер недоступен или неправильно настроен или ``Ошибка: неожиданный код состояния 404```.
  • Журналы отладки, кажется, указывают, что он пытается подключиться к одноранговому порту, то есть 2380, вместо клиентского порта, то есть 2379.
  • Я могу заставить его работать, только явно установив переключатель конечной точки на порт 2379.
  • Запрос SRV в корневом домене работает неправильно, т. е. возвращает пустой результат (без вывода).
  • статус systemctl и т. д. кажется, указывает на то, что конечная точка была правильно настроена для команды запуска etcd.

Вопросы

  • Как правильно запрашивать записи и какие могут быть проблемы (если есть) с конфигурацией dns SRV?
  • Почему etcdctl --discovery-srv коммутатор не работает - я ожидаю, что он обнаружит правильный порт, то есть 2379, и не сообщит об ошибках.
  • Должен ли etcd быть сбалансированным? Есть ли одна конечная точка, которую я могу запросить? [Почему] клиент сам выбирает конечную точку? Должен ли я настраивать балансировщик нагрузки поверх моей установки etcd?

Огромное спасибо!

Michael Hampton avatar
флаг cz
Прекратите то, что вы делаете, и начните заново с поддерживаемым дистрибутивом ОС.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.