Anton
> Засунуть...
что будет делать kubectl?
Anton
OVS может-)
ну его таки как-то надо интегрировать с кубом, мне бы сейчас попроще(побыстрее) решение, поэтому я остановился на конфигурации vxlan изнутри подов, мне просто нужно ее автоматизировать, чтобы в каждом поде вручную не прописывать айпишники
𝚔𝚟𝚊𝚙𝚜
kubectl будет общаться с kubernetes-api точно так же как и на мастере.
Можно запустить
kubectl get pods -wи следить за изменением статусов, как только нужный под будет добавлен, делать
kubectl exec <mypod> something
𝚔𝚟𝚊𝚙𝚜
Вот это очень крутая фишка в kubernetes
Anton
другими словами внутри каждого пода мониторить апи на предмет появления/исчезновения подов?
𝚔𝚟𝚊𝚙𝚜
не, ты же хотел контроллер, просто сделать один отдельный под который будет все это реализовывать
Anton
а имеет смысл замутить все это как CRD?
𝚔𝚟𝚊𝚙𝚜
либо да, можно объявить ClusterRoleBinding и в каждый под добавить по kubectl, после чего запускать необходимые действия уже при старте или остановке контейнера
𝚔𝚟𝚊𝚙𝚜
Что такое CRD? :)
Anton
под CRD я имею ввиду Custom Resource Definition
𝚔𝚟𝚊𝚙𝚜
нет, зачем?
𝚔𝚟𝚊𝚙𝚜
еще вариант, сделать контроллер который будет обновлять configmap в kubernetes
А каждый твой сервис внутри пода научить перезагружать конфиг в случае если он был изменен
Anton
ну я определаю этот контроллер как ресурс, а потом когда мне надо начать мониторить конкретную группу я создаю объект такого ресурса для заданной группы
Anton
вот мне интересно где и как этот контроллер будет запущен, просто как отдельный деплоймент?
𝚔𝚟𝚊𝚙𝚜
Ну я под контроллером понимаю обычный демон (под с kubectl который слушает поды) - да, отдельный деплоймент
𝚔𝚟𝚊𝚙𝚜
твои ресурсы можно группировать с помощью labels
Anton
ему же кстати придется хранить в себе стэйт, ведь он должен знать какие поды надо уведомить в случае если появился новый под
𝚔𝚟𝚊𝚙𝚜
зачем?
𝚔𝚟𝚊𝚙𝚜
просто уведомлять все подряд
𝚔𝚟𝚊𝚙𝚜
можно хранить стейт на самих подах - если это так необходимо
Anton
ну тогда целевой под должен уметь вычислить, что это не для него сообщение
𝚔𝚟𝚊𝚙𝚜
например при обновлении записывать версию в /tmp/last_update и при каждой операции обновления если версия старая, запускать комманду на обновление
𝚔𝚟𝚊𝚙𝚜
но вариант с configmap мне больше нравится
Anton
к тому же как уведомлять всех подряд, вообще все-все поды в кластере? там же могут быть поды, которые вообще не при делах
𝚔𝚟𝚊𝚙𝚜
разумеется иметь под это дело отдельный namespace или просто выбирать поды по label
𝚔𝚟𝚊𝚙𝚜
ака
kubectl get pod -l mygroup=group5
Anton
желательно иметь эту функциональность cluster-wide, то есть контроллер будет запущен например в kube-system и иметь дело со всеми неймспейсами
𝚔𝚟𝚊𝚙𝚜
почему бы и нет?
Anton
ну да, с лэйблом должно сработать
Anton
ну и в поде должен всегда присутствовать sidecar container, который способен выполнить эти команды, верно?
𝚔𝚟𝚊𝚙𝚜
не понимаю, зачем?
Denis
Vitalii
Апну
включайте —v=2 или больше в kube-apiserver и смотрите кто делает patch. Ну или иногда в метриках по user-agent можно догадаться.
Denis
--v=2 это verbosity логов ?
Denis
Хорошая идея, спасибо
Denis
А на практике никто не встречался?
Vitalii
типа того. Это параметр glog. Логов будет в несколько раз при каждом увеличении —v
У себя такое не видел.
Denis
ок
Vitalii
https://github.com/kubernetes/community/blob/master/contributors/devel/logging.md
Anton
не понимаю, зачем?
kubectl exec <mypod> something — "something" должно быть на поде, верно?
Anton
кстати, а как работает Service, прямо мониторит поды по лейблам через апи (poll с интервалом), или как-то хитро уведомляется?
𝚔𝚟𝚊𝚙𝚜
@aialferov ты меня заинтересовал своей задачкой)
Anton
> enpoint контроллер смотрит...
вот как раз пытаюсь понять, что такое "смотрит", как реализовано, через периодический "поллинг" или есть "пуш" нотификации от подов
𝚔𝚟𝚊𝚙𝚜
вот что у меня получилось:
while read NAME STATUS; do
[ "$STATUS" = Running ] && kubectl exec $NAME -- sh -c 'echo Hi I am $(hostname -f)'
done < <(kubectl get pod -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase -w)
Vitalii
они юзают эту штуку https://github.com/kubernetes/client-go
там есть пакет informer который делает всю магию. В kube-apiserver есть WATCH команда, с помощью которой можно подписаться на изменения по селектору. Плюс informer раз в N минут делает полный resync вызывая List
Vitalii
если вы хотите следить за изменениями каких-то объектов в кластере, то нужно юзать один из клиентов и писать код. У нас например golang и java клиенты давно используются, которые следят за нужными подами
Anton
𝚔𝚟𝚊𝚙𝚜
Anton
𝚔𝚟𝚊𝚙𝚜
bebebe
но в целом, нужно использовать правильно -o jsonpath что бы не городить такого, будет kubectl ... -o jsonpath .. | xargs -I% kubectl exec
bebebe
при помощи jsonpath отфильтровать правильные стейты и вывести нужные метаданные
𝚔𝚟𝚊𝚙𝚜
ага, плюсую
Evgeniy
Парни подскажите, на сервисе гуугл в кластере кубернетес нужно изменить файл конфигурации внутри контейнера. это лучше делать конфигмапом ?
Dmitry
тыкаюсь в swarm, знаю тут много таких. поможете советом ктонить? почему не пашет dns resolution в одной overlay сети?
Dmitry
Dmitry
Привет! Подскажите, пожалуйста, умеет ли nginx ingress SSL passthrough для нескольких доменов (для каждого свой бекэнд) без терминации трафика? И пробывал ли кто завести подобное?
Вроде как у nginx есть такой модулек из коробки, который это позволяет http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html.
Pavel
Pavel
Но я не пробовал, если что)
Dmitry
@pvlltvk Спасибо! Ты про опцию --enable-ssl-passthrough?
Pavel
Vadim
#whois Инженер в Red Hat, работаю над ansible репозиторием для установки openshift
Vadim
Vadim
>Зачем вы ломаете в Ansible обратную совместимость?
это к Ansible Core наверное? Я сам этому не рад
Михаил
Vadim
>Когда OpenShift переедт на CoreOS?
шта?
Vadim
>есть хау ту по установке OpenShift без плейбуков RedHat?
oc cluster up / minshift
Konstantin
проблема даже не в том, что ломают обратную совместимость, а то что ты можешь об этом не узнать, потому что всё будет успешно проходить, но в результате ничего работать не будет 🙂
Vadim
Vadim
естественно
Михаил
блин, вот ты пишешь плейбуки
они же основаны на каком-то how to как поставить openshift
Vadim
ты же не используешь "пять бинарей" на проде?
Vadim
ну да, рпм туда, рпм сюда