Rémy
Привет всем, есть ли здесь пользователи, которым было бы интересно начать перевод документации Kubernetes на русский язык? Не стесняйтесь связаться со мной (на английском или французском, я не говорю по-русски), чтобы начать, если вы заинтересованы 🙂
Andrey
ох фик пойми, надо coredns тож переподнимать другой?
зависит от того, какой путь реализации ты в итоге придумаешь
Nikolay
Спасибо, посмотрю
David
Добрый вечер всем! Новый доклад! Про request и limit подробно и на пальцах, и не только про них. Надеюсь, будет полезно: https://youtu.be/10ZR-fbyuSY?t=400 . Сокращенная версия текстом: https://habr.com/ru/company/flant/blog/459326/ .
Roman
спасибо, Дмитрий!
David
Нет.
Andrey
Нет.
Это зря - имхо, одна из наиболее полезных фичей в плане борьбы с resource starvation на нодах в условиях, когда не на все проставлены лимиты. Ну, чисто так мое мнение.
David
Вы гляньте, потом скажете, было ли полезно.
Vadim
еще неплохо было бы осветить https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
Andrey
Вы гляньте, потом скажете, было ли полезно.
Я текстовую версию прочитал - ничего нового не узнал, но объективно очень хорошая вводная статья для начинающих. Я просто дополнительные идеи подкидываю.
David
Мне всегда хочется осветить в несколько раз больше, чем возможно упихать в один доклад. Не знаю, что с этим делать.
Vadim
Я текстовую версию прочитал - ничего нового не узнал, но объективно очень хорошая вводная статья для начинающих. Я просто дополнительные идеи подкидываю.
согласен, может наконец боги смилуются и позволят нам открепить сообщение про РИТ - и добавить какой-то FAQ
Vadim
картиночки красивые, а тут недавно писали что лимиты на цпу нельзя ставить
Sergey
Да сделайте два доклада, первый Уде есть, второй - расширенная версия
Andrey
согласен, может наконец боги смилуются и позволят нам открепить сообщение про РИТ - и добавить какой-то FAQ
Я исходники кубеней вдоль и поперек обтрахал, но пока хз, о чем писать. А так надо бы
Andrey
Хм, а может статья с подробным описанием принципов работы kube-proxy будет полезна?
Andrey
но разве еще такого нет?
Vadim
судя по частым "шэф, все пропало ровно через год, буду переустанавливать" в этом чате - то есть, но мало
G72K
Я исходники кубеней вдоль и поперек обтрахал, но пока хз, о чем писать. А так надо бы
Я бы прочитал про новые сервис аккаунт токены и (кажется) уникальные токены на каждый под и как всё это подружить с кейклоак чтобы один сервис аккаунт мог запрашивать токены для обращения к другому приложению у кейклоака. Вообщем рассказать как в опеншифте сделано :)
Andrey
Но придумать реализацию для ванильных кубеней - это интересно
G72K
С опеншифтом я дела и близко не имел
А они там реальные проблемы из коробки решают. Вон оператор как селфхостед аписервер запускать на статик подах вообще красивый
Andrey
Так, ладно. Я тут достаточно пиздел, давайте по порядку - начну с релиза оператора для rabbitmq. https://github.com/tekliner/rabbitmq-operator вот он красавец. Надо щас настроить пуш имаджа на публичный реп, но собрать и сами можете без проблем. Ремарка: на текущий момент там захардкожен пуш сообщений об ошибках в нашу sentry, выпилю как только так сразу. Оператор используется у нас в продакшене, но ничего не обещаю и караулить у подъезда в случае чего бессмысленно.
Andrey
годно! Не желаешь засабмитить его на https://operatorhub.io/?
обязательно, но там есть требования, которым оператор пока не соответствует
Andrey
На подходе ещё оператор для nginx ingress контроллера. Если надо, то опенсорсну. У нас просто несколько ингресс контроллеров, нам полезно + я не люблю хелм.
Андрей
Чем хелм не угодил?
Stanislav
Абсолютно
Slach
https://zoom.us/w/934296256?tk=cppLkff4u23YXW2iEAznWVRoDKj6c-St2BT3lf9sVi4.DQEAAAAAN7A6wBZQOUVHeXFGRVJHbTJVcm5pM1QwVzVRAA&uuid=WN_gP9-PnN7QKG_Rzqo7ppkgQ Никто не хочет случайно послушать как Vitess в Kubernetes запускают?
Andrey
Чем хелм не угодил?
1) Бажный 2) Мало-мальски сложные случаи не покрывает
Andrey
3)
Andrey
Andrey
Генерация yaml из темплейтов - это слишком жесткое извращение даже в наш век после сексуальной революции и с распространением толерантности
Slach
Эт зум над ставить?
;))) ну стандарт дефакто сейчас увы, может потом на ютюб куда нибудь выложат но не факт
Just a baka
Генерил, но см. мое сообщение
уровень боли: максимальный а по поводу ямлов согласен)
Slach
жду на ютубе👨🏻‍💻
там Индус "co-creator", Английский тот еще ;)
Co(n)stantine👨‍🔬
оо, тогда не нужно, лучше почитать посмотреть отдельно что-то про Vitess
Костя
Если кто-то имеет экспертизу, милости прошу помочь https://stackoverflow.com/questions/57053436/priorityclass-doesnt-populate-its-value-to-podspec
𝚔𝚟𝚊𝚙𝚜
сначала посмотреть на metacotroller и подобные, может ничего сложно не нужно.
Столкнулся с проблеммой: Если у меня есть 500 Custom Resources, то при перезапуске контроллера operator-sdk отпроцессит их все. А Metacontroller умеет подобный кейс отрабатывать?
Sergey
а! в смысле как раз и надо чтоб _не_ процессил? ну, Kopf их таки отпроцессит, но по-быстрому, внутренне, без погружения в обработчики (потому что не найдёт причины что-то вызывать).
Sergey
а как именно он стейт сохраняет?
в metadata.annotations.blahblahblah/last-handled-state.
𝚔𝚟𝚊𝚙𝚜
𝚔𝚟𝚊𝚙𝚜
На operator-sdk я просто .metadata.generation сохранял в status.generation и при зпуске проверял, но на ansible - всё равно долго
Sergey
да, json без мусорных и системных полей. документация: https://kopf.readthedocs.io/en/latest/continuity/ работа с полями: https://github.com/zalando-incubator/kopf/blob/master/kopf/structs/lastseen.py
Sergey
вообще, я не знаю, как правильнее: логично бы последнее состояние хранить в status где-нибудь чтоб не замусоривать сам объект. но вот kubectl хранит свои данные для своего apply и диффов в аннотациях в виде json. вроде как "официальный" способ.
𝚔𝚟𝚊𝚙𝚜
дать возможность выбирать это поле разработчикам? ;)
Ну если last-applied то лучше в аннотациях, как вы уже заметили так любой тул по умолчанию делает: будь то kubectl, ksonnet, qbec, хельм вроде тоже
Sergey
дать возможность выбирать это поле разработчикам? ;)
да. видимо, так. но до конфигов поведения потом как-нибудь доберусь.
Max
Ребят, есть проблемка при RollingUpdate, специфичная для нашего юзкейса. Используем nginx ingress controller. Есть replicaset из N подов, на которые балансится http трафик через nginx. Клиенты — websocket. Когда выкатываем новую версию деплоймента, некоторые клиенты переподключаются аж 3-4 раза, что для нас очень критично. То есть куб удаляет под, websocket-клиент, который был подключен к этому поду, переподключается еще раз, но не факт что к новому поду, а к старому, который куб также прибивает и клиент рано или поздно подключается к новому поду
Max
Есть ли способы это обойти?
Mikhail
Есть ли способы это обойти?
через ci делать b/g релиз с переключением сервиса на другие селекторы?
Max
canary?
Max
blue/green?
Max
если честно, никогда это не делал. в gitlab изи делается?
Max
через ci делать b/g релиз с переключением сервиса на другие селекторы?
в тоже время хотелось бы сохранить всю фишку rolling upgrade — добавляем один-два пода, удаляем столько же
Max
а не добавили 50 подов, на которые нам кластера не хватит
Max
а потом только удалили 50 старых)
G72K
в тоже время хотелось бы сохранить всю фишку rolling upgrade — добавляем один-два пода, удаляем столько же
Деплойте новую версию в новый сервис с новым хостом или префиксом ингреса, в вебсокет протокол добавить сообщение "мы закрываемся идите воон туда за обслуживанием" и постепенно переливайте трафик между версиями
G72K
Пока переливается, скейлим ап новую версию, скейлим вниз старую. Можно весёлый оператор написать и убить пару недель