Sn00part
тогда нет никаких гарантий)
Sn00part
это красивый CI с свистелками, но прод он работающий не гарантирует)
yolkov
а как ты засунишь в куб, CI постгрес с сотни гигабайтовыми БД
yolkov
несколько редис кластеров из 64 шард с репликами
yolkov
тарантулов, мемкешей
yolkov
пару десятков кластеров монг?
Sn00part
это юниттесты должны обеспечить
yolkov
а кто сказал что у нас их нет?
yolkov
я говорил что мы не сможем посторить боевое окружение к дев, QA и т.п.
yolkov
поэтому стараемся хотябы поднимать похожее, но в меньщих объемах
Sn00part
стопроцентно го покрытия я ещё ни разу не видел. и к этой сумятице добавляется ещё неймспейсная неразбериха, которой на проде нет)
Sn00part
CI тестирует сервис в идеальном для него окружении, как будет в проде хз
Sn00part
планерки, тикеты, раком ставят пм, никто не виноват) у меня лично постоянно такой опыт был. у вас не так?)
yolkov
слава богу раком не ставят)
Sn00part
😁
Sn00part
я про то, чтобы не превращать все в карго культ. тестировать удобнее, а то ли оно тестирует вообще никто не знает
Sn00part
а в проде у вас тоже кубернетес?
yolkov
частично
yolkov
часть сервисов
yolkov
все еще в стадии внедрения, постоянно чтото обновляем, изменяем
Sn00part
разработчики знают, что они пишут микросервисы со всеми вытекающими? или девопс сам костылями забивает?
yolkov
конечно знают, но переходный период, микросервисы давно начинали писать, но у нас все равно основное приложение монолит, и его не скоро еще распилят, сервисы появляются вокруг монолита
Sn00part
👍
Sn00part
я щас сам на себя работаю, с кубернетесом проблем нет. в больших конторах я его ещё не видел, интересны проблемы и вот это все что я выше написал
Sn00part
на моем последнем месте мы хотели такое сделать, но не сложилось)
Sn00part
проблемы были с более простым, традиционным CI
Etki
Etki
В моей философии тестовые кластеры и должны умирать сразу по окончании тестов, вся необходимая информация о внутрянке должна оставаться в тестовых отчетах. У меня свой взгляд на необходимые окружения, и весь деплой для предпросмотра предполагался в фиксированные неймспейсы (включая feature-ветки - у нас тут не так много людей, поэтому предполагалось запихивать это в один неймспейс preview). В общем, весь этот кейс не очень сильно отличался от любых других.
Denis
Хороший кейс
Denis
Завтра задам вопрос, а тем временем на другом краю земли ) https://twitter.com/zeithq/status/839046948053258240
Vasiliy
а вот если я создал на одной тачке с gcloud cli & kubectl кластер, то как на другой на него потом переключиться?
Vasiliy
на той же самой можно use-context, но на другую нужно как-то этот контекст добавить? как?
Vasiliy
конфиг ручками копировать если только https://kubernetes.io/docs/user-guide/sharing-clusters/
Vasiliy
ой, а если я ноды в дашбоарде удалил, то их можно пересоздать автоматически?
Andrei
kubeadm --join...?
Vasiliy
а, у меня нa google cloud крутится все
сорян за такие вопросы конешно) учусь в экстремальных условиях
Andrei
Andrei
Если так, то сейчас поднимется и подключится автоматом
Vasiliy
да, ну т.е. кластер у меня создается командой gcloud container clusters create ..., и дальше kubectl apply -f blahbla, ох, я понял, там в скриптах вот так:
node_port=$(kubectl get -o jsonpath="{.spec.ports[0].nodePort}" services $base)
[ -z "$node_port" ] && echo "!!! Node port not found !!!" && exit 1;
node=$(kubectl get pods -o jsonpath="{.items[0].spec.nodeName}")
нифига не шарю, даже загуглить не могу нормально как пересоздать ноды
Vasiliy
не хочется кластер пересоздавать
пробую просто размер кластера поменять, т.е. кол-во нод, мб поможет, ¯\_(ツ)_/¯
Dmitriy
Привет! В последнее время продолжаю, или другими словами пытаюсь, настроить вручную кластер. Настроил, ни один процесс в моем двухузловом кластере не ругается. Но при всем при этом, каждый раз когда я запускаю очередной POD тем или иным способом, у меня вываливается состояние Pending. С сетью все нормально и команда kubectl describe node *** выдает, что вроде все нормально. Кто нибудь может как-то помочь мне изменить состояние Pending на что-то иное. Могу для ясности выслать свои рабочие конфиги, что возможно поможет мне сдвинуться с места.
Sergej
второй узел как миньон подключен
Andrei
Vasiliy
да, я его 2 раза проходил в течение недели
Vasiliy
(:
Vasiliy
да, я грохнул уже кластер) спасибо
это конечно дичь, я уверен есть способ восстановить ноды, но я пока очень мало знаю(
Andrei
Привет! В последнее время продолжаю, или другими словами пытаюсь, настроить вручную кластер. Настроил, ни один процесс в моем двухузловом кластере не ругается. Но при всем при этом, каждый раз когда я запускаю очередной POD тем или иным способом, у меня вываливается состояние Pending. С сетью все нормально и команда kubectl describe node *** выдает, что вроде все нормально. Кто нибудь может как-то помочь мне изменить состояние Pending на что-то иное. Могу для ясности выслать свои рабочие конфиги, что возможно поможет мне сдвинуться с места.
Что необычного в логах мастера? Настройка Kubernetes в ручном и полуавтоматическом режиме разобрана у меня в блоге http://avmaksimov.ru/%D1%83%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA-kubernetes/ - прочитай первые три статьи - более, чем достаточно, чтобы понимать, что происходит и как завести Kubernetes
Vasiliy
да, я понимаю, поэтому пересоздал кластер просто
я имел ввиду восстановить ноды без его пересоздания
как-то мб вручную
Dmitriy
Andrei
да, я понимаю, поэтому пересоздал кластер просто
я имел ввиду восстановить ноды без его пересоздания
как-то мб вручную
кажется понял: кластер кубера стартует в виртуальных машинах (один мастер и 2 или 3 ноды) итого 3-4 вирт машины. если ты одну из них грохнул, будет создана новая ВМ, о старой забудь. здесь дело в подходе к микросервисам в контейнерах: предполагается, что любой контейнер или сервер могу сдохнуть в любой момент времени, поэтому приложения, размещаемые в контейнерах и контейнерных кластерах должны учитывать этот момент и быть спроектированы с учетом этого подхода. Итог: грохнул ноду - забудь про нее, все восстановится автоматически.
Vasiliy
но у меня не восстановились(
я их (ноды) через kubernetes dashboard удалял
правда я там еще много всего делал:
– менял шаблон у вм
– пересоздавал сами вм
– менял кол-во нод
Andrei
Andrei
и подключит к мастеру
Andrei
так будет проще всего
Vasiliy
ладно, спасибо) уже поздно, я уже пересоздал кластер)
в след раз попробую, но вроде бы я это делал
Vasiliy
еще парит что очень много всего остается после удаления кластера
Vasiliy
load balancer'ы и прочее, много всего
приходится чистить ручками
было бы неплохо уметь как-то это все удалять вместе с кластером, но как я пока не понял
Andrei
Andrei
и ничего не остается
Vasiliy
да я и так пробовал и через веб интрефейс (
у меня почему-то остается, подозреваю что мб там нет явной какой-то привязки к кластеру, но они не удаляются)
Andrei
Vasiliy
да, ну я вот удалил через веб интерфес, он же тоже самое API использует, что и gcloud cli, остались балансировщики и еще куча всего и вот ручками удаляю сижу все время эти остатки
Vasiliy
столько там еще проблем конечно
например, если пересоздать VM когда pod is pending, то этот pod так и останется в pending с:
1m 17s 8 {default-scheduler } Warning FailedScheduling no nodes available to schedule pods
т.е. он банально не может попробовать еще разок
Vasiliy
или нет
NAME STATUS AGE
gke-foo-staging-default-pool-8d686e11-cxpt NotReady 6m
это после пересоздания кластера и после изменения шаблона и группы VM и их пересоздания
я в прошлый раз так nodes и удалил, тк увидел NotReady и подумал типа удалю и он сам пересоздаст, но нет(
ок, я кажется понял
не, ничего не понял, на этот раз ноды не удалял
удалил vm's, они пересоздались, а ноды не появились) kubectl get nodes – No resources found.
Dmitriy
В чем может быть дело? Выдается вот такое сообщение, которое вообщем-то верно,
kubelet[1942]: E0310 17:24:52.080953 1942 container_manager_linux.go:625] error opening pid file /run/docker/libcontainerd/docker-containerd.pid: open /run/docker/libcontainerd/docker-containerd.pid: no such file or directory
Sergej
каталоги все по пути есть?
Dmitriy
каталоги все по пути есть?
Есть, но там вообще нет PID-файлов. Мой докер не использует PID-файл. Более того у него даже такого параметра нет)
Timur
привет. подскажите самый простой способ реализации динамического Load balancer'а под Kubernetes.
Etki
сущность сервиса в самом кубернетесе
Roman
че означает [::]:9000
Dmitry
Dmitry
Пхп фпм
Roman
ну вот погугги
Roman
ничего ненайдеш )
Dmitry
Лучше кстати на юникс сокетах
Anonymous
Вот @count0ru пусть будет гарантом