George
нет. не будет работать
Stas
у него есть ограничения по сходимости зависящее от летенси?
Nikolay
у самого куба вроде нет, а вот у etcd точно есть.
George
но еще вопрос в том, что будет, если положим, etcd в одном ДЦ, а воркер ноды в другом - как бы тоже не очень хорошо, т.к. если будут временные проблемы с сетью.... ну, вы поняли
Nikolay
я пытался около месяца назад собрать кластер, две пачки по три ноды, где-то 400км друг от друга, L2 натянута между ними. как раз уперся в то, что etcd очень сильно жаловался на латенси.
Nikolay
пытался поиграться с балансерами, чтобы запросы с разных нод кластера уходили в географически ближние etcd, но эта конфа меня окрестила наркоманом и я решил больше так не делать :D
Stas
спасибо. тогда федерация трех кластеров похожа на выход. а у неё есть какие-то ограичения по вашему опыту? например если разрабы в одном кластере играются, а тестировщики на другом конце Земли
Stas
*со своим кластером
Игорь
Вообще можно, конечно, выставить ETCD_HEARTBEAT_INTERVAL=1000 ETCD_ELECTION_TIMEOUT=10000. Но лучше не надо :)
Stas
собственно вопрос какой. у нас есть топ API на федерации из 3 кластеров. среди них есть отвалившийся офис со своим локальным кластером. и можно-ли рассматривать кейс полностью функционирующего отвалившегося офиса в режиме офлайн от федерации?
Stas
и в идеале самостоятельного восстановления консистентности после восстановления связи
Stas
А для чего именно федерация? Может, просто три кластера поднять?
хочется централизованно управлять сразу всеми для идентичности окружений
Stas
мелкие правки вносятся часто, но дают непредсказуемый результат, различие если случаются
Rainbow
мелкие правки вносятся часто, но дают непредсказуемый результат, различие если случаются
crontab * * * * * KUBECONFIG=config1 kubectl apply -f clusterstate.yml * * * * * KUBECONFIG=config2 kubectl apply -f clusterstate.yml * * * * * KUBECONFIG=config3 kubectl apply -f clusterstate.yml 🙈
Rainbow
Ну это не страшно на самом деле особо, кроме неудоств поддержки clusterstate, если прям жгет
Алексей
Всем привет. а есть у кого нибудь записи с прошлогоднего slurm? Буду очень признателен. Заранее благодарю.
Stas
я неправильно выразился ранее
Rainbow
если там stateless, то да, конечно
Stas
нужны одинаковые условия содержания апликух на всех энвах, где-бы они не располагались. плюс возможность батчем пропатчить сразу все, либо выборку
Rainbow
А вообще в kubernetes easy way описан путь с отдельной репой для манифестов... это хороший путь , я к ниму иду. После сбоя запустить pipeline и все. Можно schedule в gitlab на ночное время или просто так на всякий случай
Andrei
Добрый день! Подскажите, пожалуйста, в какую сторону копнуть насчет длительного шедулинга подов? Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 2m51s default-scheduler Successfully assigned nginx-ingress/nginx-ingress-controller-67g78 to k8s-node-0 Normal Pulling 96s kubelet, k8s-node-0 pulling image "quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.22.0" Normal Pulled 79s kubelet, k8s-node-0 Successfully pulled image "quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.22.0" Normal Created 78s kubelet, k8s-node-0 Created container Normal Started 78s kubelet, k8s-node-0 Started container
Stas
А вообще в kubernetes easy way описан путь с отдельной репой для манифестов... это хороший путь , я к ниму иду. После сбоя запустить pipeline и все. Можно schedule в gitlab на ночное время или просто так на всякий случай
если не мержить локальные изменения в мастер после восстановления связи, это обнулит работу разрабов в отвалившемся офиса на период аварии
Rainbow
Можно в pipeline делать тип while true; do (./apply-to-clusters && exit 0) || sleep 60 done если критично раскатать в 3 кластера
Stas
я правильно понял, что федерация кластеров мне только усложнит жизнь?
Stas
раз никто не предлагает её использовать
Rainbow
я не пробовал, там куча всякого и никто не уверен
Rainbow
Задача раскатать контейнеры в 3 места, чего мудрить 😁
Stas
ясно. спасибо за советы. будем пробовать. на крайняк действительно просто добавлю некий лейер для доработки ямликов разрабов до стандартов компании и апликух
Rainbow
ясно. спасибо за советы. будем пробовать. на крайняк действительно просто добавлю некий лейер для доработки ямликов разрабов до стандартов компании и апликух
для меня пока идеальная ситуация, когда ci/cd pipeline делает git push с изменением image в репу devops, туда где манифесты и kubectl apply в pipeline.
Stas
для меня пока идеальная ситуация, когда ci/cd pipeline делает git push с изменением image в репу devops, туда где манифесты и kubectl apply в pipeline.
разрабы тоже люди. им надо давать возможность самим решать какие лимиты вешать на свои поды
Stas
иначе придется девопсам это делать за них
Rainbow
apiVersion: ctl.enisoc.com/v1 kind: MySuperDeploymentForDevelopers metadata: name: my-app spec: image: ... replicas: 3 resources: ... остальное на девопсе (развернуть это в примитивы куба).
Stas
т.е. он позволяет делать вставки? (грубо выражаясь)
Rainbow
Он из CRD генерит deployment/service и другие примитивы
Rainbow
В CRD закидывается все, что можно разработчику
Stas
прямо терраформ для кубера. занятно. покурю. спасибо
Rainbow
Чем не helm ?:)
вопрос "а зачем тогда helm?" скорее
Stas
Если про несколько кластеров посмотри shipper от booking.com
спасибо, но в моём кейсе это выглядит оверинжинирингом
Grigorii
Подскажите, какой Ingress поддерживает TCP/UDP и acl/whitelist. Нужно выкинуть tcp порт в интернет для доступа к сервису для определенного IP. nginx/haproxy белые списки для tcp походу не поддерживают
Stas
что касается шедулинга, чекни логи контроллера и апи в kube-system неймспейсе
Andrei
Не, вопрос не про конкретный deployment, а глобально. Как сделать для выкатки я знаю
Stas
тогда уточни плиз
Andrei
Видимо, я уже ответил на свой вопрос: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/kubelet/config/v1beta1/types.go#L210
Andrei
Всегда говорил что сорцы полезней документации)
Tadeusz
Всегда говорил что сорцы полезней документации)
ага, особенно если ты в них разбираешься 😊
Anonymous
Возможно тупой вопрос но все же. Решил пощупать GKE. Активировал в addons dashboard кубика. Как попасть в этот дашборд?
Artem
Кто нибудь юзает blackbox exporter с servicemonitor ?
Artem
интересует возможно ли мониторить несколько таргетов с одним servicemonitor'ом
Салтыдык
Vadim
https://www.lego.com/en-us/themes/classic/building-instructions##sp=100
Салтыдык
в интернете вроде были
Vadim
А если серьезно то нужно больше конкретики передать вашему девопсу, пусть читает про lifecycle пода и думает как организовать из подручных средств
Nikolay
https://www.lego.com/en-us/themes/classic/building-instructions##sp=100
Не вижу голубого хомяка, непорядок
Vadim
Не вижу голубого хомяка, непорядок
Закопирайчен гуглом поди
Rainbow
я бы не становился
.
я бы не становился
Нет выбора) или просто юзать стандартные схемы, чего я делать не хочу
Vladimir
А что такое это правило публикации?
В секции описания frontend, правила порта, хз как правильнее сказать) у кого-то это virtual server зовется. Синтаксис для haproxy
𝚔𝚟𝚊𝚙𝚜
Тем временем qbec научился в oidc и уже вполне тянет на замену ksonnet. Напомню, он имеет схожую с ним структуру и похожий функционал: - Позволяет деларативно описывать приложение состоящее из нескольких компонентов используя синтаксис jsonnet - Позволяет устанавливать различные переменные и накладывать определенные мутации для каждого environment - Декларативно описывать кластера и применять изменения на них - Умеет рендерить helm-чарты - Даже qbec diff работает как надо В общем, очень советую попробовать!
𝚔𝚟𝚊𝚙𝚜
https://qbec.io/
Anton
До ksonnet так не созрел, модет с qbec что взлетит
Артем
Добрый день, подскажите, как в deployment прописать, чтобы в поде запускаля фаил JavaScript?
Артем
Гуглить команду command или shel
Такая команда почему то не работает command:: - /websocket - -c - node server.js