G72K
Никто вольюмы под конкретное приложение не шифровал? Ещё не разбирался, но есть подозрения, что keyring в ядре вообще про контейнеры ничего не знает и меня ждёт много веселья :) буду пробовать ecryptfs, но может кто по граблям уже прошёлся?
Anton
тоесть блок proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; в конфигурации есть и протокол должен в клиенте переключится
Nikolai
да, так и делаю в общем, перед ингресс-контроллером стоит nginx, который выступает в роли LB (типа) и разруливает входящие соединения на nodePort ингресса и вот на нем стот апгрейд коннекшена, но похоже что контроллер ничего об этом не знает и в итоге пробрасывает стандартный http на соотвествующую поду
Nikolai
это как я понял, потому что если напрямую в порт ингресса постучаться то вебсокет тоже не работает в итоге перенес логику на самого клиента (поду) - там все равно nginx внутри
Andor
Сколько у тебя нжинксов?
Nikolai
дохера ))
Nikolai
вне кластера (условно) идет первый - он принимает соединения на 80 и 443 порты (это вместо LB), дальше идет ингресс-контроллер, который слушает на nodeport (висят соотвествующие сервисы - по сути аналог 80 и 443), дальше ингресс на основании host-заголовка перебрасывает соединение на соотвествующий неймспэйс (поды)
Nikolai
в поде тоже nginx (внутри джанга потому что)
Andor
Эээ, а нафиг джанге нжинкс?
𝚔𝚟𝚊𝚙𝚜
Никто вольюмы под конкретное приложение не шифровал? Ещё не разбирался, но есть подозрения, что keyring в ядре вообще про контейнеры ничего не знает и меня ждёт много веселья :) буду пробовать ecryptfs, но может кто по граблям уже прошёлся?
Я не шифровал, но имел некий опыт с форматированием вручную, могу сказать точно, если для отформатированного таким образом волума сработает mount <volume> <somewhere>, то работать так же будет и для контейнера
Andor
У тебя статика в том же поде?
Nikolai
да, только в разных контейнерах - бэк+фронт в одну поду объединены
Nikolai
внутри поды 2 порта - один для бэка (websocket) другой для фронта (nginx)
Andor
У нас та же херня, правда без вебсокетов
Nikolai
если подскажите как сделать лучше - с радостью послушаю
Andor
Всё никак не соберусь распилить
V
он же рассказал уже
Если pods одинаковые, какая разница, какой из них будет запущен? От замены буквы "A" на букву "A" что-то меняется? =)
V
Думаю у них привязка хранилища к имени пода
Интересно, из-за какой практической задачи должно применятся такое решение ...
V
В теории понятно, что так можно. На практике непонятно
Andor
Это уже объяснили тоже
Nikolai
хотя судя по документации - вебсокет должен из коробки работать https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets
V
Это уже объяснили тоже
Кинь плз ссылку, если не трудно
Andor
Могу кинуть просто слово clickhouse
V
Это не объясняет необходимость привязки имени пода к имени хранилища, с учетом идентичности подов =) Ну, знаешь, из разряда "Почему самолеты летают? - Потому что они не круглые"
V
ReadWriteMany?
Ммм...Передеплоили поды на двух нодах, под-1 с ноды-1 переехал на ноду-2, и под-2 с ноды-2 - на ноду-1. При этом "под-1 === под-2". Кажется, что тип доступа пока ничего не прояснил =)
V
Откуда ты взял про "идентичность подов"? У них имена же разные
Я специально спрашивал у автора топика, могут ли быть поды различными в рамках StatefullSet. Он сказал, что только в случае разности версий (типа когда обновляешь образ). А автор как раз использует StatefullSet для запуска подов (см. выше) Т. е. в общем случае у него поды идентичны
Andor
Однообразны но не идентичны
Andor
Под ch-1 нельзя запускать с двнными от ch-2
V
Потому что каждый под это часть шарда/реплики. Их данные нельзя мешать
Ах вот оно! MongoDB или аналог? Вопрос исчерпан =) Спасибо
Andor
Сказали же что кликхаус
Andor
Кстати к вопросу о джанге, вот у меня сейчас есть деплоймент с кучей подов внутри, я хочу их разделись на два деплоймента (?) с разным количеством реплик, но надо как-то контролировать что версии будут одинаковые Есть ли что-нибудь готовое для такого?
Andor
Конкретно: хочу разделить джангу и статику в разные репликасеты, статике больше replicas=2 нет смысла, а саму джангу надо больше
Andrei
Таже фигня с пыхой. Можно сделать общий values для двух чартов с тэгом image
G72K
так как все волумы маунтятся сначала на хосте, а уже потом пробрасываются в контейнер
наверное сработает, надо только придумать как секреты пода в маунтер прокинуть, у CSI что-то было.
Andor
Ну и у нас нет хельма
Andrei
Ну это как с тем же kube-prometheus, там релиз сразу всего
Дмитрий
Добрый день ребят
Andrei
Общий values над всеми и в global секцию запихнуть версию
Дмитрий
вопрос есть)
Andor
Общий values над всеми и в global секцию запихнуть версию
Вопрос в роллбеке если один из деплойментов зафейлит
Дмитрий
не могу добавить ноды в кубер) пишет [kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp [::1]:10248: connect: connection refused. error uploading crisocket: timed out waiting for the condition
Eduard
У меня не local volume
я предложил без крови
Дмитрий
[WARNING CRI]: unable to check if the container runtime at "/run/dockershim.sock" is running: exit status 1
Andor
А без хельма самим кубером это не сделать?
Andrei
Нужно только не забыть добавить селекторы на версию в нужные места
Andor
Какой-нибудь crd или оператор
Andor
[WARNING CRI]: unable to check if the container runtime at "/run/dockershim.sock" is running: exit status 1
Что именно в тексте этих ошибок тебе непонятно?
Andrei
Да можно, конечно. Но я еще не добрался до написания оператора. Времени нет
Andor
Прост если можно без хельма, то я бы предпочёл без хельма
Дмитрий
Что именно в тексте этих ошибок тебе непонятно?
почитал на гите что он не видет CRI - который автоматом добавиться когда встанет kubelet но кубелет не встанет )
Дмитрий
to start kubelet for the first time, kubeadm join must be run (resolves kubelet error: unable to load client CA file /etc/kubernetes/pki/ca.crt: open /etc/kubernetes/pki/ca.crt: no such file or directory) to run kubeadm join without it complaining, crictl must be manually copied AND /var/run/dockershim.sock MUST already exist. but, for that socket to exist, kubelet should have be already running, which is back to step 1)
Andor
*не видит
Andor
*добавится
Andor
У тебя докер или cri-containerd?
Дмитрий
докер
Andor
Версии компонентов?
Дмитрий
18.06
Дмитрий
11.2
Дмитрий
На мастерах все поднялось
Дмитрий
на нодах вот такие ошибки валятся
Andor
18.06 докер же не поддерживается
Дмитрий
kubeadm join 192.168.250.200:6443 --token l538c5.3lvj4zlhzgvaq87p --discovery-token-ca-cert-hash sha256:678463698de38d6b99c11907cce1a740ca65c7b5ef2ad7c52fe2e78319c447f8 --cri-socket /run/dockershim.sock --skip-preflight-checks
Дмитрий
он ругается что работает только с 17.03 ... но все равно развернулся
Дмитрий
при установке на мастерах он сказал типо что осторожно у вас 18.06 , проверена работа на 17.03
Andor
Так развернулся или ошибки и не работает?
Дмитрий
на мастерах работает
Дмитрий
на мастерах ругался так же , пока я в init.yaml не указал dockershim ... после этого встал
Andor
Если тебе потрахаться, то репорти Если тебе ехать, то просто следуй инструкции по установке кластера
Дмитрий
следовал