Anonymous
И стоит ли это делать в проде?
Andor
а кто запретит?
Andor
просто не лезь в куберовские неймспейсы и всё будет хорошо
Anonymous
А быть может кто поделится годной схемой архитектуру кубера на проде
Andor
берёшь короче амазон или гугл и живёшь в них
Andor
а у них разве есть хостед кубер?
Mikhail [azalio]
Andor
ты ещё скажи про яндекс
Ivan
ещё redhat
Mikhail [azalio]
Andrey
как раз над этим я и работаю
К стати оно с CNI дружит ? calico в KVM пробрасывается ?
Anton
кто-то делал the hard way? что вот это за айпишник 10.32.0.1 вот здесь: https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/04-certificate-authority.md ? (не знаю как дать ссылку на строчку в markdown файл, можно поиском по странице, он там один такой)
Mikhail [azalio]
https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/08-bootstrapping-kubernetes-controllers.md
Anton
а что это значит?
Anton
для сервисов которые выделяются?
Mikhail [azalio]
--service-cluster-ip-range ipNet A CIDR notation IP range from which to assign service cluster IPs. This must not overlap with any IP ranges assigned to nodes for pods.
Anton
то есть это сам куб будет из этой подсети выбирать айпишники для сервисов, а потом kube-proxy прописывать их в netfilter?
Anton
ok, спасибо
G72K
Можно ли в кубере использовать etcd для хранения своих данных?
не, не стоит. слишком велик риск. ни один инсталер не использует роли в etcd, слишком много придется перенастраивать руками. в etcd нету толковой изоляции, так что ваше приложение вполне может засрать etcd , что весь кластер развалится, вам оно надо?
Anton
почему он фигурирует в сертификате?
G72K
почему он фигурирует в сертификате?
потому что изнутри на куб АПИ ходят по SSL
Maksim
Кто он?
Maksim
10.254.0.1 ?
Anton
10.254.0.1 ?
10.32.0.1
Anton
потому что изнутри на куб АПИ ходят по SSL
так ходят все, а айпишник один
Maksim
почему он фигурирует в сертификате?
ПОтому что согласно pki все возможные имена и ip Сервера должны быть перечисленны в SAN. По умолчанию первый адресс в сети сервисов отводится под APIserver. И APIserver будет на нём отвечать, при чём по ssl протоколу, соответвенно что бы сертифкат был верен этот адрес должен быть в SAN
Maksim
Это часть pki стандарта сертификации.
Anton
стандарт мне ясен, мне не совсем ясно, кто такой этот 10.32.0.1, что именно он будет ходить в API
Maksim
это первый сервис кубернетиса, его ендпоинт это АПИСевер
G72K
он и есть апи
Maksim
kubernets.default
Maksim
стандарт мне ясен, мне не совсем ясно, кто такой этот 10.32.0.1, что именно он будет ходить в API
Он не будет ходить в АПИ, и стандарт вам явно не ясен. Это И есть Адресс Аписервера (один из его Альтернативных адрессова). И Он должен быть в сертифкате, что бы сертификат был Валидным
Maksim
так ходят все, а айпишник один
Нет их может быть много. все Альтернативные имена сервера должны быть указаны в разделе SAN сертифката.
Maksim
у апи сервера минимум три имени с ходу. ip накотором оно весит, kubernetes.default и первый ip из сети сервисов
Anton
понятно, а я то думаю зачем там список айпишников нод, теперь понял, что это ж не воркеры, а контроллеры где апи-сервер запущен будет
Denis
Есть три мастера на 1.9.1, на каждом etcd. Жестко вырубаю одну из нод, оба оставшихся аписервера перестают отвечать на некоторые запросы (timeout exceeded), помогает только рестарт apiserver. Кто нибудь видел такое?
Anton
то есть мы можем сходить на апи по: 1) kubernetes.default 2) внутреннему айпишнику сервиса, который представляет kubernetes.default 3) айпишнику ноды, на которой запущен апи-сервер 4) внешнему айпишнику 5) локально для этого все эти ребята прописаны в сертификат апи-сервера. Я все верно теперь понимаю?
Maksim
да
Anton
ок, спасибо
Maksim
Все это должно быть в SAN иначе сертификат будет не валиден для одного из адрессов
Denis
перестают отвечать на запросы изнутри куба?
Да, при этом в логах контроллеров тишина практически (v=4)
G72K
два etcd не смогут договориться
смогут, на это они как раз расчитаны. изначально было нечетное число, так что все ок
G72K
Да, при этом в логах контроллеров тишина практически (v=4)
добро пожаловать в https://github.com/kubernetes/kubernetes/pull/56690
Anton
и просто kubernetes
вот кстати ни на одном из кластеров, с которыми я имел дело оно не срезолвилось ни разу
Vadim
хмм, странно, у меня всегда ругались, выясняя кто главнее
Denis
Забыл сказать что используется reconciler новый. Там тоже интересно. Из двух оставшихся аписерверов только один остается в masterleases
Maksim
добро пожаловать в https://github.com/kubernetes/kubernetes/pull/56690
я рпоблему решил, натравив этот сервис на lb так что с точки зрения кубера у меня один аписервер
Denis
а как HA LB реализовано?
Denis
pace != peace
Denis
но тоже склоняюсь попробовать через LB
Maksim
Хм не замечал, что оно пишется не как peace
Maksim
-)
Maksim
миротворцем
тогда "ходотворцем"
Denis
а, если новые reconciler то это не 56690
А как reconciler решает эту проблему?
G72K
он оставляет только рабочие адреса в DNS сервиса, а значит session affinity не может помешать
Denis
ок, значит я неправильно думал про то как session affinity работает
Denis
Еще интересно что если через SIGKILL убить все мастер процессы и etcd то все продолжает работать, мрет именно когда виртуалку убиваю
Denis
да
G72K
надо бы тоже попробовать
G72K
а etcd какой версии? убивать надо ту, что с текущим лидером etcd да?
Denis
а etcd какой версии? убивать надо ту, что с текущим лидером etcd да?
я убивал ту где был лидер контроллера. etcd судя по логам норм там переизберается.
Denis
3.2.4
Denis
да и контроллер тоже переизберается
G72K
все равно до 3.2.15 обновите уж )
Denis
Убил нелидера
Denis
та же херня
Denis
убил master02, он с собой забрал еще пару нод # kubectl get nodes NAME STATUS ROLES AGE VERSION test-kube02-master01 Ready master 1d v1.9.2+coreos.0 test-kube02-master02 NotReady master 1d v1.9.2+coreos.0 test-kube02-master03 NotReady master 1d v1.9.2+coreos.0 test-kube02-worker01 NotReady node 1d v1.9.2+coreos.0 test-kube02-worker02 Ready node 1d v1.9.2+coreos.0
Denis
жесть какая то