172 похожих чатов

А никто не сталкивался с такой проблемой. Мне etcd pod'ы, которые

создает etcd-operator cilium'а
Спамят 50-60 раз в секунду такую ошибку

2020-12-11 16:52:36.002166 I | embed: rejected connection from "10.245.4.173:32988" (error "tls: \"10.245.4.173\" does not match any of DNSNames [\"*.cilium-etcd.kube-system.svc\" \"*.cilium-etcd.kube-system.svc.cluster.local\"]", ServerName "cilium-etcd-c2m6jflr96.cilium-etcd.kube-system.svc", IPAddresses [], DNSNames ["*.cilium-etcd.kube-system.svc" "*.cilium-etcd.kube-system.svc.cluster.local"])

Нашел issue https://github.com/cilium/cilium-etcd-operator/issues/37
Мол включите реверсивный резолв в CoreDNS. Он у меня конечно включен. PTR записи есть. (https://github.com/cilium/cilium/blob/aa22314462750c67a18a18ba6b5d4a16f3a99c4d/Documentation/gettingstarted/k8s-install-etcd-operator-steps.rst)
В качестве проверки дают пример такого DNS запроса:

```
host 10.60.20.86
86.20.60.10.in-addr.arpa domain name pointer cilium-etcd-972nprv9dp.cilium-etcd.kube-system.svc.cluster.local.
```

Но вот беда, у меня etcd оператор создает две службы cilium-etcd, cilium-etcd-client, и coredns по всей видимости рандомно возвращает результат.
Здесь 10.245.4.173 - адрес pod'а etcd, который фигурирует в ошибке другого pod'а (ошибку смотрите выше). 10.245.4.75 - адрес CoreDNS pod'а
Вот несколько одинаковых DNS запросов, которые возвращают разные результаты:

```
$ dig -x 10.245.4.173 @10.245.4.75 +short
10-245-4-173.cilium-etcd-client.kube-system.svc.cluster.local.

$ dig -x 10.245.4.173 @10.245.4.75 +short
10-245-4-173.cilium-etcd-client.kube-system.svc.cluster.local.

$ dig -x 10.245.4.173 @10.245.4.75 +short
cilium-etcd-54glklt9sp.cilium-etcd.kube-system.svc.cluster.local.

$ dig -x 10.245.4.173 @10.245.4.75 +short
cilium-etcd-54glklt9sp.cilium-etcd.kube-system.svc.cluster.local.
```

И видимо etcd такого никак не ожидает.

Видно что тут два первых запроса вернули PTR для службы cilium-etcd-client, а два последних для cilium-etcd.
Служба cilium-etcd - headles. Оператор использует чтобы собрать кластер etcd. А вот cilium-etcd-client обычная, используется для подключения к ней cilium агентов и cilium оператора.

Чет какая-то боль с этим managed etcd в cilium. В 1.9.1 он вообще кластер не может собрать, так как нет еще сети, а cilium агенты не могут подняться так как нет работающего etcd кластера.
Походу etcd оператор в cilium не продакшн реди. Либо я его как-то не так готовлю?

17 ответов

4 просмотра

Пиши в слак им

Перегенири серты

George Gaál
Пиши в слак им

Сказали что будут открываться от etcd-оператора

Dmitry-Sergeev 🇺🇦 Автор вопроса
𝚔𝚟𝚊𝚙𝚜
Перегенири серты

а он сам их генерит. Для этого достаточно дропнуть секреты с ними, потом дропнуть etcdcluster и pod cilium-etcd-operator'а. Я это пробовал, пробовал и переставлять весь cilium с полной очисткой его перед этим. Он странно как-то сделан. cilium-etcd-operator деплоет etcd-operator, который деплоет etcd кластер. Затем cilium-etcd-operator ждет, и если etcd кластер не собрался, то он его дропает и дропает etcd-operator и так по гр кругу. И у него получается успешно собрать кластер очень часто не с первого раза =)

Dmitry-Sergeev 🇺🇦 Автор вопроса
George Gaál
Пиши в слак им

о пасиб. У них же slack есть

Dmitry-Sergeev 🇺🇦 Автор вопроса
𝚔𝚟𝚊𝚙𝚜
Сказали что будут открываться от etcd-оператора

а это в слеке написали? Или где-то анонсировали про это в блоге?

Dmitry Sergeev 🇺🇦
а это в слеке написали? Или где-то анонсировали пр...

В слаке как-то написали, когда я у них про etcd-operator стал расспрашивать

Dmitry Sergeev 🇺🇦
а он сам их генерит. Для этого достаточно дропнуть...

Да вообще оригинальный etcd-operator давно дропнули :(

𝚔𝚟𝚊𝚙𝚜
Да вообще оригинальный etcd-operator давно дропнул...

В смысле тот на котором основан cilium-etcd-operator

Dmitry-Sergeev 🇺🇦 Автор вопроса
𝚔𝚟𝚊𝚙𝚜
В смысле тот на котором основан cilium-etcd-operat...

да там не то чтобы он основан. Он зачем-то поднимает etcd-operator, который уже поднимает кластер. В итоге получаем cilium-etcd-operator + etcd-operator - так странно

Dmitry Sergeev 🇺🇦
да там не то чтобы он основан. Он зачем-то поднима...

Дело в том, что etcd-operator обычно подразумевает персистент-кластер, но во многих кейсах хилить его не умеет, в случае с цилиумом, который использует etcd тупо для кэша проще убить и создать новый кластер, если что-то пошло не так

Dmitry Sergeev 🇺🇦
да там не то чтобы он основан. Он зачем-то поднима...

Он прям самого оператора спавнит или CR для него?

Dmitry-Sergeev 🇺🇦 Автор вопроса
𝚔𝚟𝚊𝚙𝚜
Дело в том, что etcd-operator обычно подразумевает...

да, вот только странно что что-то идет не так. А потом он внезапно таки собирает кластер. Бывает такое, что он поднимает первый pod, потом второй не может поднять, с ошибкой (не удалось получить member list) и все. Так и висит пока cilium-etcd-operator снова не передеплоет etcd-operator, который будет передеплоивать etcd кластер. > Он прям самого оператора спавнит или CR для него? Прям оператора и похоже CRD тоже. В managedFields crd вижу и еtcd-operator и cilium-etcd-operator в менеджерах. Забавно что если etcd-operator не справляется. Он прям его дропает, а не только кластер =)

Dmitry Sergeev 🇺🇦
да, вот только странно что что-то идет не так. А п...

Там есть возможная проблема курицы и яйца, у тебя controller-manager или cilium выдаёт podCIDRs на ноды?

Dmitry-Sergeev 🇺🇦 Автор вопроса
𝚔𝚟𝚊𝚙𝚜
Там есть возможная проблема курицы и яйца, у тебя ...

Да вроде проблем с выдачей ип подам нет. Поды успешно создаются и начинают пробовать собрать кластер. А вообще я настраивал чтобы controller-manager выдовал. Если я правильно это сделал. В helm чарте опции: config.ipam=kubernetes, global.k8s.requireIPv4PodCIDR=true Это для весрии 1.8.5, Для >= 1.9.0 они там поменяли чарт сильно. Но я щас про 1.8.5. В 1.9.1 etcd вообще не заводится без костылей

Dmitry Sergeev 🇺🇦
Да вроде проблем с выдачей ип подам нет. Поды успе...

Кстати да, я спрашивал почему они от umbrella-chart отказались в итоге

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
16
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
А кто такой мужчина в твоем понимании Азиз?
who?です 🐈
11
Ну значит тебе повезло, мы же про транк говорим оба?
Александр (Rouse_) Багель
11
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем ку. Подскажите, если задекларировал массив так: int arr[10] = {1, 2, 3, 4}, то в arr[4] будет мусор или нуль?
Sasha K
14
буквально один оставшийся вопрос при выполнении строчки mov eax, 5 операнд "5" будет присутствовать где-либо в памяти (любой), кроме как в памяти блока .code? подвопрос: как...
12
Карта сайта