Serega
да и не в мир же его открывать..
Rainbow
да и не в мир же его открывать..
да и базы в мир особо не открывают. Vault даёт удобную чистку старый доступов + audit.
Rainbow
если приложие долго не ходило за секретами, то токен дохнет. Крайне удобно.
Rainbow
а чисто один пароль от базы без велосипедов не подохнет.
Rainbow
Ну и большая красная кнопка, нас ломают, все отрубаем, если пофантазировать 😄
Serega
как ты узнаешь что “нас ломают” и пора жать на кнопку? =)
Rainbow
я один раз узнал по логам от багов, на которые все забивают)
Rainbow
алертам sentry, баги - полезно
Rainbow
и мне пару раз интересные дырки прикрывали через пол час. В общем не исправляйте все баги)
Serega
ну т.е. ты распознал реальный взлом или попытки взломов? попытки взломов идут тысячами ежедневно…. распознать реальный взлом уже веселее. Правда интересно. Помню, у нас(давно) на нагиосе была алертилка на новые открытые порты на хостинг серверах…но это в другую эпоху
Rainbow
Я когда для спортивного интереса копаюсь в сайтах, думаю 500 ошибки отлично выдают.
G72K
https://www.redhat.com/en/blog/understanding-critical-kubernetes-privilege-escalation-flaw-openshift-3 побольше деталей
Хм, > When connecting to the kubelet, the API Server uses certificate based authentication Там же у kubelet webhook Auth с недавних пор, когда на каждый запрос он ходит обратно в apiserver и проверяет можно ли
G72K
это если --authorization-mode=Webhook, по идее это спасет от такого
В issue написано что ничего не поможет, только отключение portforward/exec , значит вебхук тоже обходят или он не такой надёжный как обещали :)
G72K
В bootkube authorization mode webhook по-умодчанию, в кубспрее наверняка тоже
Rainbow
Остался мой вопрос без внимания, кто-нибудь сталкивался?
kube-prometeus поставьте и забудьте. Это типовое решение, работающее из коробки, мало кто с нуля так настроит.
Andrey
в kubernetes можно получить количество запросов к сервису как метрику? хочу использовать для hpa
после ковыряний, остановился на деплойменте istio (оно мне всё равно надо будет) - оно добавляет пром с метрикой istio_requests_total, которую можно привязать к Deployment, и использовать для hpa. Второй вариант - использовать метрику envoy_cluster_upstream_rq_total которую можно привязать к подам
German
а сталкивался ли кто-то что такоей вот ингрес по умолчанию перекидывает на https, чего мне не нужно apiVersion: extensions/v1beta1 kind: Ingress metadata: name: frontend-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - http: paths: - path: / backend: serviceName: frontend servicePort: 80
Й
87% это апликуха делает)
German
Прямо редиректит?
да, через 308ю
Й
А если на порт сервиса сходить? В обход ингресса?
Rainbow
а сталкивался ли кто-то что такоей вот ингрес по умолчанию перекидывает на https, чего мне не нужно apiVersion: extensions/v1beta1 kind: Ingress metadata: name: frontend-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - http: paths: - path: / backend: serviceName: frontend servicePort: 80
HSTS может быть. У меня такое было, когда я стал проксить старым nginx кластер кубера (переходил медленно). Точно не разбирался, но вылез HSTS. http -> https redirect там где не нужно
Rainbow
А, хотя если 308, то это другой кейс.
Andrey
на любом ingress-controller это должно быть. На nginx nginx_ingress_controller_requests.
тут вопрос в том, как эту метрику привязать к deployment. Один ингресс может раскидывать запросы на разные бэкенды
German
нашел, было именно в этом: annotations: nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/ssl-redirect: "false"
Andrey
"By default the controller redirects (308) to HTTPS if TLS is enabled for that ingress"
German
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#server-side-https-enforcement-through-redirect
а за ссылку спасибо, прям в вечернее чтение, блягодарю
Andrey
label, то есть?
George
🔵 В группе есть традиция - представляться при входе: ▫️Какой у вас проект или где работаете? ▫️В чём вы специалист? ▫️Чем можете быть интересны или полезны сообществу? ▫️Чем интересно сообщество вам? ▫️Откуда вы? ▫️Как узнали про группу? В сообщении нужно указать тэг #whois 🔵 Правила чата: 🚫 Публикация вакансий запрещена 🚫 Реклама запрещена 🚫 Политика запрещена 🚫 Флуд и непрофессиональное поведение запрещено За несоблюдение правил - одно предупреждение, далее следует бан. Вакансии и запросы на поиск работы публикуем в группе @devops_jobs. Формат любой: full-time, part-time, remote и разовые подработки. Также обмениваемся инсайдами и аналитикой по рынку труда. Здесь общаемся на темы, посвященные Docker и экосистеме. Задаем вопросы, решаем проблемы и делимся новостями. Параллельно с этой группой развивается: 🔸@docker_ru - посвященная Docker, Docker Swarm и экосистеме в целом. Задаём вопросы, обсуждаем идеи, решаем проблемы, делимся новостями и т.д. 🔸@devops_ru - активно общаемся на темы, посвященные DevOps, Docker, Mesos, DC/OS, CoreOS, Clouds и т.д. 📡 Возможно, вам также будут интересны группы: @nodejs_ru, @react_js, @angular_js, @javascript_jobs, @reactnative_ru, @ios_ru, @android_ru, @mobile_jobs. Приятного общения!
Всем привет) Работаю над своим личным проектом - облачная платформа с достаточно необычным направлением, пока что распространяться не буду) Не скажу, что я профи, но концентрируюсь на программировании на питоне Чем могу быть полезен - ещё не знаю) Сообщество интересно тем, что тут могут быть новости, интересные фичи, а так же взаимопомощью (я совершенно новичке в кубернетиз) Я из Питера, пришёл из Docker - чата
Rainbow
label, то есть?
ну да. nginx_ingress_controller_requests{controller_class="nginx",controller_namespace="kube-system",controller_pod="nginx-nginx-ingress-controller-6mcc5",endpoint="metrics",exported_namespace="default",ingress="gitlab",instance="192.168.0.62:10254",job="nginx-nginx-ingress-controller",namespace="kube-system",pod="nginx-nginx-ingress-controller-6mcc5",service="nginx-nginx-ingress-controller",status="503"}
Andrey
ingress="gitlab" - вижу. А вот какой service в качестве бэкенда будет - нет
Rainbow
ingress="gitlab" - вижу. А вот какой service в качестве бэкенда будет - нет
ingress это Kind: Ingress Он почти один в один как сервис же. Не закидывать куча service в один ingress не сильно жесткое "если"
Andrey
как вариант, можно конечно делать по одному ингресу на каждый service/Deployment - это да
Andrey
спасибо, подумаю над этим вариантом тоже, хотя мне наверное всё равно istio надо будет
German
У вас был редирект фолс? Или это после правки стал таким?
я принудительно поставил его таким, теперь не редиректит
Rainbow
спасибо, подумаю над этим вариантом тоже, хотя мне наверное всё равно istio надо будет
самый адекватный вариант в любом случае делать /metrics у приложения, который расказывает как ему тяжело.
Andrey
спорно
Andrey
если у вас десятки микросервисов и у каждого своя команда - то напрягать всех ради автоскейлинга интегрироваться, а потом всё равно ставить в кубер адаптеры, такое себе решение
Rainbow
У graphql api есть классная задумка в cost на каждый "endpoint". Сумма костов по роутам будет адекватней, чем просто rps.
Andrey
"что дозволено Юпитеру"
Rainbow
В любом случае их нужно заставлять писать metrics, у каждого свои
Andrey
если всё делать по хорошему, это всё равно должен быть отвязанный сервис на другом порту, который отдаёт метрики независимо от возможно задыхающегося приложения
Andrey
чтоб сбор метрик не влиял на производительность приложения
Andrey
та же логика, что и с readiness/liveness пробами
Andrey
пока цель только hpa, мониторинг после
Rainbow
метрики обычно счетчик, не думаю, что они сильно влияют.
Rainbow
Предложим 10 роутов, добавить в каждый строку, которая по разному инкрементурую счетчик костов. (условный search дороже index). Это строчек 15 (10 + инициализация либы) кода и всем станет просто. Одна метрика "сколько костов выбили за N времени".
Й
если у вас десятки микросервисов и у каждого своя команда - то напрягать всех ради автоскейлинга интегрироваться, а потом всё равно ставить в кубер адаптеры, такое себе решение
Блин, всегда одно и тоже)) "а чего это мы должны теперь брать параметры из энвов" "зачем нам ваш докер, и так же все работает". Блин, да потому что. Потому что так это работает и работает эффективнее. А если вам откровенно лень ходить и всех попинывать, то так и напишите - мне тупо лень, а не пытайтесь переложить эту проблему на сложность технологии или ее реализации ;)
Serega
если всё делать по хорошему, это всё равно должен быть отвязанный сервис на другом порту, который отдаёт метрики независимо от возможно задыхающегося приложения
вы просто оправдываете отсутствие метрик и хелз чеков каким-то благородными мотивами (т.е. почему это еще не сделано). С точки зрения приложения - все это не только не очень сложно, оно просто необходимо, если хочется клауд-нейтив. С ингреса сильно много метрик не вытащишь…чтобы там сказать, какой конкретно энподинт сбойнул, как часто, или какая латенси к базе у разных запросов.
Andrey
так, вот вы мне что сейчас заясняете? Про какие метрики?
Andrey
у меня конкретная цель, сделать hpa по количеству запросов на под
Andrey
эта общая задача, может возникнуть даже в компании, которая не является владельцем продукта, и её можно решить без его модифицирования
Andrey
про то, что метрики полезны, я и так знаю
Serega
расшифруйте hpa пожалуйста.
Andrey
стыдно не знать такие термины :) horizontal pod autoscaler
Serega
я сомневался что имелось именно это в виду.
Serega
количество запросов на под вытаскивается из метрик ингресса. Например: rate(nginx_ingress_controller_requests{status=~"[2].*",ingress="my_ingress"}[5m]) но я считаю что вы неправильно декларируете общую задачу. Потому что, прежде чем что-то аутоскейлить или выделять ресурсы - уже должен быть мониторинг и анализ узких мест.
Andor
Аутоскейлинг по кол-ву запросов, а не по качеству ответов на эти запросы?
Andor
Новые веяния
Mikhail
А Кафка и зукипер в одном поде это ок?
Terry
А Кафка и зукипер в одном поде это ок?
чего нет? если речь о кластере то ок
Andor
Кажется не очень
Andor
А зачем их держать в одном поде?
Mikhail
А зачем их держать в одном поде?
Ну а зачем в разных? Если они идут бок о бок и обновлять скорее всего их надо вместе
Mikhail
Но я точно не знаю, вот и спрашиваю