Алексей
а собеседование на кого?
админ кластера или пользователь?
может с этим вначале определиться
Terry
𝚔𝚟𝚊𝚙𝚜
из чего состоит куб, чем занимается apiserver, controllermanager, scheduller, kubelet
𝚔𝚟𝚊𝚙𝚜
*стикер про пять бинарей*
Terry
🤓
Алексей
Алексей
есть картинка хорошая в sdk на crd по моему
там временные линии того что происходит когда в api заливаешь ченить
можно по ней пройтись
Andor
Алексей
не, helm норм
выгнать конфиг, потом допилить напильником ))
и удалить
Алексей
helm есно
Костя
Алексей
Михаил
Алексей
https://book.kubebuilder.io/basics/what_is_a_controller.html
𝚔𝚟𝚊𝚙𝚜
почему сервис не пингуется
Алексей
вот тут картинки прикольные, готовый pipeline для собеседования
Костя
Костя
Как обычно
Алексей
bebebe
Andor
я прошёл собеседование? :)
𝚔𝚟𝚊𝚙𝚜
вернее даже:
можно ли проверить сервис на работоспособность с помощью ping check.
Опишите вариант для iptables и для IPVS
Алексей
А если все равно не пингуется, хотя должен?
Алексей
так проще
Andor
ну это уже задача, а не вопрос для собеседования
Алексей
так работа это решение задач, а не сдача экзамена
G72K
Andor
мы щас про работу или про вопросы для собеседования?
Алексей
задача собеседования - понять 2 вещи
1) может ли человек решать задачи под которые его берут
2) будет ли остальным комфортно с ним работать
Алексей
или я не прав?
Алексей
Алексей
спросить простенькие вещи
дать простую задачку
послушать уточняющие вопросы
перейти на более высокие уровни абстракции
поговорить за жизнь ))
Костя
или я не прав?
Прав конечно. Но ведь всех когда то просили подготовить список вопросов для кандидатов... Появился же как то tcp vs udp, как включается linux итп
Vadim
Alexander N.
Да все подряд
Раз все подряд - в первую очередь надо смотреть как человек мыслит, а конкретную тулзу всегда можно выучить. Если с порога кандидат говорит "все у вас ху... надо так" или "нахер логи собирать я и так посмотрю их" - повод отправить в пешее
Dmitriy
Тип сервиса ClusterIP обеспечивает балансировку нагрузки? Или только отказоустойчивость?
Костя
Алексей
базовые вопросы по протоколам и работе linux
никто не отменял
потом pod, deploy, sts...
способы конфигурирования configmap secrets...
ingress
способы расширения функционала (crd ...) причем сюда лучше выводить уже с задачи которую влоб не решитью
Alexander N.
вы в любом случае первые пару месяцев человека не подпустите к более-менее боевым кластерам, за это время можно вполне базово выучить человека даже с нуля.
Костя
Ладно, всем большой лайк, тут столько накидали, что и самому есть что почитать теперь 😄. Спасибо большое
Костя
Если что то получится, поделюсь
G72K
У нас туева куча логики на jsonnet: проверить конфликт DNS, сгенерировать ямлы для бекапа, развесить лейблы согласно полиси, прописать network policy к задекларированным зависимостям (и обратно), автовыбор storageclass по требуемым фичам и черти что еще, при этом у разработчиков полная свобода модифицировать ямлы сгенерированные из наших компонентов при помощи их собственного jsonnet "скрипта", который подцепляется при деплое, если что-то они сделают, что выйдет за пределы наших ожиданий, то валидаторы (написанные на jsonnet) просто не дадут сгенерировать ямлы и скажут разработчикам где они неправы. Jsonnet это больше чем шаблонизатор, на нем можно писать развесистую логику
Anton
bebebe
У нас туева куча логики на jsonnet: проверить конфликт DNS, сгенерировать ямлы для бекапа, развесить лейблы согласно полиси, прописать network policy к задекларированным зависимостям (и обратно), автовыбор storageclass по требуемым фичам и черти что еще, при этом у разработчиков полная свобода модифицировать ямлы сгенерированные из наших компонентов при помощи их собственного jsonnet "скрипта", который подцепляется при деплое, если что-то они сделают, что выйдет за пределы наших ожиданий, то валидаторы (написанные на jsonnet) просто не дадут сгенерировать ямлы и скажут разработчикам где они неправы. Jsonnet это больше чем шаблонизатор, на нем можно писать развесистую логику
бохато звучит
bebebe
но обычно это делается CI частью, на pull request, или на коммит, CI не прошел, тютю
bebebe
не совсем понятно зачем этот нишевый продукт.
Алексей
я бы глянул пример чегонить jsonnet...
с логикой
Алексей
любопытно
bebebe
Rainbow
Andor
там разве развесистое?
Rainbow
не кисло для одно проекта
Andor
вот все говорят что ksonnet/jsonnet хорошие
Andor
открываешь первый попавшийся файл, а там:
local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + {
_config+:: {
namespace: 'monitoring',
},
};
Rainbow
ну вот это и суть jsonnet
Rainbow
kube-prometheus/kube-prometheus.libsonnet либа, как в любом языке.
Andor
я не про импорт, а про то, что далее
Andor
_config+:: это чоа
Rainbow
kube-prometheus.libsonnet в том же проекте и там ниже уже мясо
Rainbow
https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet
Andor
хз
Andor
не очень понятно
Rainbow
https://github.com/ksonnet/ksonnet-lib
тут примеры вроде получше
Sergei
а в чем проблема с пониманием того, выкатилось helm'ом успешно или нет? можно же просто статус деплойментов проверить и всё. ну если хелзчеки написаны норм. но хелзчеки в любом случае лучше адекватно писать
Andor
самому приверять?
Andor
глазками?
Sergei
ну я например на питоне юзал кубернетес клиент. там 5 строк получается
Sergei
можно и просто kubectl
G72K
я бы глянул пример чегонить jsonnet...
с логикой
Ну вот например надо им подцепиться к зависимости , они пишут "v1.resolveRelation(anotherApp)" и при деплое в зависимости от того где они деплоя подставляется или сервис из нужного окружения или ингресс из другого кластера + сразу прописывается network policy чтобы доступ был (по умолчанию все перекрыто даже внутри одного неймспейса). На этой штуке сделаны то что я назвал "sheaf" - связка приложений. Надо что то потестировать , деплоим все приложения в новый sheaf вообще без изменений кода/конфигов, внутри resolveRelation() поймет куда деплоим, выдаст нужные значения. По умолчанию sheaf создаётся по имени бранча , но можно явно указать. Разрабы под демо, отработки багов, перф тесты и вообще чего попало создают эти sheafs ,я про это ничего не знаю даже и им код никакой писать не надо тоже
Andor
то что манифест пошёл применяться - не значит, что деплоймент у тебя выкатится
Алексей
У нас туева куча логики на jsonnet: проверить конфликт DNS, сгенерировать ямлы для бекапа, развесить лейблы согласно полиси, прописать network policy к задекларированным зависимостям (и обратно), автовыбор storageclass по требуемым фичам и черти что еще, при этом у разработчиков полная свобода модифицировать ямлы сгенерированные из наших компонентов при помощи их собственного jsonnet "скрипта", который подцепляется при деплое, если что-то они сделают, что выйдет за пределы наших ожиданий, то валидаторы (написанные на jsonnet) просто не дадут сгенерировать ямлы и скажут разработчикам где они неправы. Jsonnet это больше чем шаблонизатор, на нем можно писать развесистую логику
т.е. ты описал кучу велосипедов которые никак нельзя масштабировать на использование за пределы вашей компании?
Vadim