Andor
сотрудник положил?
Роман
Andor
откуда такая уверенность, что не сотрудник?
Роман
откуда такая уверенность, что не сотрудник?
Пока исключаю, это в последнюю очередь.
Andor
этот гуй что позволяет сделать?
Slach
php rce в таком случае =) это xhprof
Etki
и что именно качает и запускает крон?
Slach
xhgui
https://github.com/coreos/clair
Роман
Andor
а зачем в контейнере вообще крон?
Etki
Я, к сожалению, не очень со всем этим знаком, но в первую очередь искал бы уязвимость в самом приложении (с учетом того, что вне зависимости от языка и скилла программиста хитрые дырки обычно так или иначе остаются, я бы это отправлял в категорию "очень вероятно") и в том, что скачивается и запускается. Посмотрите аксесс логи на предмет странных запросов.
Роман
а зачем в контейнере вообще крон?
Вообще-то да. Крон не запущен и в контейнере его нет.
Etki
Ну и просто первое что гугл выплевывает: https://github.com/perftools/xhgui/issues/190
Роман
php rce в таком случае =) это xhprof
Там апач, он от www-data работает.
Andor
хм, почему-то мне куберовские метрики для некоторых нод возвращают что requests > limits
Andor
sum(kube_pod_container_resource_limits_cpu_cores) by (node) / sum(kube_pod_container_resource_requests_cpu_cores) by (node)
Andor
есть и больше единицы и меньше единицы
Andor
может ли быть такое что requests > limits и если да, то чо это за фигня
Andor
нифига не понимаю
Pavel
Там апач, он от www-data работает.
А как билдится имадж? Какой родительский имадж, что добавляют разработчики?
Slach
Там апач, он от www-data работает.
и ??? это как то от RCE освобождает? просканируйте все таки image тулзами которые я предложил
Роман
А как билдится имадж? Какой родительский имадж, что добавляют разработчики?
Родительский php:7.1-apache, собирается из tar архива и потом install.php. Разработчики туда ничего не добавляют. Стандартные библиотеки для php: mongodb и libssl-dev
Etki
от какого пользователя кстати майнер работал?
Dmytro
в nginx для server в upstream можно указать max_conns чтобы не душить тех, кто стоит за ним, при наплыве. вариантов еще много, в приложении можно заложить логику \ ограничение на число входящих запросов, клиенты тоже как то реагировать должны на отлупы, все это как то планироваться должно, явно не в этом чатике =))
max_conns насколько я вижу нельзя никак прописать в nginx-ingress без кастомного темплейта, и похоже проставить headers для конкретного location тоже нельзя, и еще кое-какие настройки. Поэтому пока что я вижу что полезность nginx-ingress стремится к нулю для реального продакшена и все равно придется крутить свой конфиг и его мейнейнить. Логика в приложении по лимитам запросов (и размеру запроса) должна быть тут спору нет, но пока я этот тикет не смог пропихнуть в спринт :(
Etki
От рута
там не может быть какой-то вот такой штуки https://github.com/kayrus/kubelet-exploit ?
Etki
потому что тогда это вряд ли RCE
Etki
remote code execution (в данном случае я имею в виду что это вряд ли RCE через запущенное приложение, потому что тогда бы еще пришлось перепрыгнут ьс текущего пользователя на рута)
Logan
То такое RCE?
remote code exec
Pavel
Чёрт возьми...
Эта штука уже не актуальная, кстати. Но это смотря как настроили, конечно.
Роман
Эта штука уже не актуальная, кстати. Но это смотря как настроили, конечно.
Я попробовал создать файл в контейнере с произвольного компа. И у меня получилось.
Pavel
Ну так скорее включайте аутентификацию)
Anton
Интересный опыт. Кластеров все больше, секурити все хуже
Роман
kubespray
Anton
воу
Andor
знаете же шутку про IoT: S в аббревиаутер IoT обозначает Security
Anton
еще инетерснее
Andor
вот про кластера похоже, но вроде не так плохо
Anton
из какого релиза kubespray?
Роман
Pavel
Могу подтвердить, что в кубспрее это закрыли только в последнем релизе - 2.4)
Pavel
Сам недавно с этим столкнулся)
Anton
kubespray
там же rbac, аутентификация и тд из коробки
Pavel
там же rbac, аутентификация и тд из коробки
Рбак тут не причем) Да и рбак там из коробки появился не то чтобы давно)
Роман
Могу подтвердить, что в кубспрее это закрыли только в последнем релизе - 2.4)
А если я старым кубспреем деплоил и обновлю его - как кластер задеплоится? Будут проблемы?
Anton
там процедура апгрейда предусмотрена же, лучше глазами почитать что случится
Pavel
А если я старым кубспреем деплоил и обновлю его - как кластер задеплоится? Будут проблемы?
Надо читать описания релиза и проверять на тестовом кластере, это точно
Anton
Чёрт возьми...
я после просмотра видео с kubeconf проверял кубелеты и их 10250 порты на эту хрень и все было норм
Anton
в kubespray есть две опции https://github.com/kubernetes-incubator/kubespray/search?utf8=%E2%9C%93&q=--anonymous-auth&type= в kubelet по умолчанию --anonymous-auth=false https://github.com/kubernetes-incubator/kubespray/commit/f7703dbca37436c214b29d10691a17c4ef2524e7 в api server поведение задать можно https://github.com/kubernetes-incubator/kubespray/commit/444b1dafdcacf4a46f447ed7fee30405857e5980
Vadim
https://github.com/kubernetes-incubator/kubespray/blob/master/inventory/sample/group_vars/k8s-cluster.yml#L20 - дефолтно оно true
Anton
когда добавляли было false =))
Anton
https://github.com/kubernetes-incubator/kubespray/commit/b8788421d580764d43e6c0318ff7b0b9b9622058
Anton
я чет плохо понимаю что тут замутили с /healthz и anonymous auth на api server
Роман
А подскажите, где хранятся ендпоинты kubelet'ов? То есть, когда я говорю kubectl exec ... - где он берёт их адреса?
Andor
в etcd наверное
Anton
ты через api server тычешь в 1025х порты нод
Anton
я чет плохо понимаю что тут замутили с /healthz и anonymous auth на api server
https://github.com/kubernetes-incubator/kubespray/pull/1937 в пуле лучше описано
Anton
кто-то пользовался initializers? можно как-то сделать, чтобы InitializerConfiguration охватывала только ресурсы с определенными лэйблами?
Anton
apiVersion: admissionregistration.k8s.io/v1alpha1 kind: InitializerConfiguration metadata: name: example-config initializers: - name: podimage.example.com rules: - apiGroups: - "" apiVersions: - v1 resources: - pods вот это пример из документации, но он распространяется на все поды, и если я такое помещу в кластер, то все поды должны будут пройти через лапы инициализатора, а мне бы этого не хотелось
Pasha Chalyk
селектор?
Anton
можно поместить его в этот манифест?
Pasha Chalyk
ну надо проверять, не думаю что везде селектор работает, а тут нет
Anton
зачем гадать, если можно спек посмотреть
Anton
в спеке про селекторы ничего не сказано
Anton
может как-то через resources можно пропихнуть, вот что написано про ресурсы: Resources is a list of resources this rule applies to. For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '' means all resources, but not subresources. 'pods/' means all subresources of pods. '/scale' means all scale subresources. '/*' means all resources and their subresources. If wildcard is present, the validation rule will ensure resources do not overlap with each other. Depending on the enclosing object, subresources might not be allowed. Required.
Anton
может как-то через слэш после pods можно указать лэйблы?
Kirill
Всем привет, есть TeamCity который просто собирает имаджи и кладет в хранилище, есть k8s который выполняет контейнеры и контролирует их, в k8s имаджи попадают из хранилища. Но как то нужно сказать k8s о том чтобы он выполнил Deployment, интересует какой системой вы пользуетесь для этого?
Andor
Тимситей и пользуйся
Andor
Оно ж знает какой имж с каким тегом оно запушило
Kirill
но он не знает в какую среду нам нужно, т.к. он просто собирает без конфигов и енвайрментов
Kirill
среды test, staging, prod