Если у user или sa есть права на создание ролей в кубе, но в создаваемой роли навесить права, которых у данного user или sa нету, то куб не даст их назначить. Это часть RBAC privilege escalation prevention. Но так как я не ИБ и рубрику вредные советы люблю, то
есть два verbs которые позволяют это обойти: escalate и bind.
https://kubernetes.io/docs/concepts/security/rbac-good-practices/#escalate-verb
есть два verbs которые позволяют это обойти: escalate и bind.
https://kubernetes.io/docs/concepts/security/rbac-good-practices/#escalate-verb
Kubernetes
Role Based Access Control Good Practices
Principles and practices for good RBAC design for cluster operators.
👍11
30 сентября 2025 должен произойти релиз kubernetes in action. Second edition. В 2018 году, когда я только начал изучать кубернетес, вышло первое издание этой замечательной книги. Когда ее прочитал, ко мне пришло представление как этот ваш кубирнтес работает. С выходом первой книги часть апи изменилось, часть нет, например мало что поменялось в структуре стейтфулсета. Только поведение самого контроллера, он на момент выхода книги, ещё занимался шедулингом подов. Куб и из не очень простой системы, стал еще сложнее. Но концепция и взаимодействие компонетов не сильно. Думаю, для новичков с кубом, второе издание будет так же полезным, как и когда-то первое.
👍8🫡2
Кубернетичек
65k nodes in k8s https://cloud.google.com/blog/products/containers-kubernetes/gke-65k-nodes-and-counting Из прикольного, чтобы достичь этого, конечно же выкинули etcd из куба. И взяли Spanner. На этом можно и закончить, в целом. Кажется это главная причина…
Все, 65к нод не модно. Eks говорит, мы предоставляем кластера со 100к нод https://aws.amazon.com/blogs/containers/under-the-hood-amazon-eks-ultra-scale-clusters/. Для этого нужно: использовать tmpfs, шардировать ключи (разделить кластера etcd по ключам в kube api), пенести транзакционную модель на кастомный плагин, дождать изменений в кубе 1.31 и 1.33 с констистентным чтением и стриминг пакетов, поправить индексацию в популярных куб контроллер. И вуаля)
Amazon
Under the hood: Amazon EKS ultra scale clusters | Amazon Web Services
This post was co-authored by Shyam Jeedigunta, Principal Engineer, Amazon EKS; Apoorva Kulkarni, Sr. Specialist Solutions Architect, Containers and Raghav Tripathi, Sr. Software Dev Manager, Amazon EKS. Today, Amazon Elastic Kubernetes Service (Amazon EKS)…
🔥9😁4👀2❤1
Немного про хуки выполняемые кубелетом и их гарантии. Я в целом всегда их избегал. Но однажды появилась идея, выводить реплику из кластера приложения не через оператора, а с использованием preStop (кстати, даже есть действие sleep у него https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/3960-pod-lifecycle-sleep-action/README.md). Планировали это сделать ненадолго. Но если зайдет - то нет ничего постоянного чем что-то временное. Но не в этот раз.
Первый случай, хук не отработает если кубелет упал, или удалили ресурс ноды из куба. Второй - иногда могут быть приседания с deletionGracePeriodSeconds, если хук может выполняться долго (не наш случай, но хозяйке на заметку). Третий - была бага у кубелета, когда он просто не выполнял его (сходу не нашел ишью к посту, но тут на доверии же?)). Четвёртый - https://github.com/kubernetes/kubernetes/issues/129907.
В целом для себя вывод сделал как и раньше, что это скорее возможность костылять, как например со слипом для грейсфул шатдауна пока под не уберется из эндпоинтов, чем реальное средство в реальной эксплуатации.
Первый случай, хук не отработает если кубелет упал, или удалили ресурс ноды из куба. Второй - иногда могут быть приседания с deletionGracePeriodSeconds, если хук может выполняться долго (не наш случай, но хозяйке на заметку). Третий - была бага у кубелета, когда он просто не выполнял его (сходу не нашел ишью к посту, но тут на доверии же?)). Четвёртый - https://github.com/kubernetes/kubernetes/issues/129907.
В целом для себя вывод сделал как и раньше, что это скорее возможность костылять, как например со слипом для грейсфул шатдауна пока под не уберется из эндпоинтов, чем реальное средство в реальной эксплуатации.
GitHub
enhancements/keps/sig-node/3960-pod-lifecycle-sleep-action/README.md at master · kubernetes/enhancements
Enhancements tracking repo for Kubernetes. Contribute to kubernetes/enhancements development by creating an account on GitHub.
❤5👍3
Судя по тредам этот кеп https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/961-maxunavailable-for-statefulset, которому уже почти 6 лет, имеет шансы перейти в бету в этом году (в 1.34 его не будет, но в 1.35, кто знает). Для пользователей kruise controller она уже доступна несколько лет как. К слову.
GitHub
enhancements/keps/sig-apps/961-maxunavailable-for-statefulset at master · kubernetes/enhancements
Enhancements tracking repo for Kubernetes. Contribute to kubernetes/enhancements development by creating an account on GitHub.
https://github.com/cloudnativelabs/kube-router/issues/1715
kube-router - один из простых и надёжных cni, похоже потихоньку умирает. К этому шло, за последние годы фич не появлялось, только фиксы. Да и весь проект живёт, по-сути, на плечах одного человека.
kube-router - один из простых и надёжных cni, похоже потихоньку умирает. К этому шло, за последние годы фич не появлялось, только фиксы. Да и весь проект живёт, по-сути, на плечах одного человека.
GitHub
Seeking New Maintainers · Issue #1715 · cloudnativelabs/kube-router
Hey there! As you may or may not know, kube-router essentially only has two active maintainers right now, @mrueg and myself. Many of the older maintainers of this project have unfortunately moved o...
💔6🤯4
https://github.com/external-secrets/external-secrets/issues/5084
Тут ещё про ESO скинули. Я им не пользуюсь, но проект очень популярный.
Тут ещё про ESO скинули. Я им не пользуюсь, но проект очень популярный.
GitHub
Health of External Secrets project · Issue #5084 · external-secrets/external-secrets
Update 4 Maintainers recently voted continuing releases #5293. The next release date is temptative for sept. 22nd. With the contributor support we are seeing on community meetings, and remaining ac...
😱5💔2
https://xn--r1a.website/ittales/674
Я понимаю, после стольких насмешек сидеро над ссш, им религия не позволит добавить его к себе в ось.
Решение классное с точки зрения инженерной смекалки. Когда есть набор ограничений, а что-то делать нужно.
Но осущестлять подключение через nc для дебага, напоминает анекдот про то, что ёжики плачут, колются, но продолжают есть кактус :)
Я понимаю, после стольких насмешек сидеро над ссш, им религия не позволит добавить его к себе в ось.
Решение классное с точки зрения инженерной смекалки. Когда есть набор ограничений, а что-то делать нужно.
Но осущестлять подключение через nc для дебага, напоминает анекдот про то, что ёжики плачут, колются, но продолжают есть кактус :)
Telegram
ITTales :(){ :|:& };:
Вот вам небольшая пятничная история. Что делать когда Talos Linux сдох, и вот непонятно из-за чего.
Kubernetes API недоступен (не запускается CRI), у вас нет ничего, кроме доступа к Talos API.
Казалось бы всё. SSH нет, доступа на запись тоже нет. Только…
Kubernetes API недоступен (не запускается CRI), у вас нет ничего, кроме доступа к Talos API.
Казалось бы всё. SSH нет, доступа на запись тоже нет. Только…
😢5👍3
Не то, чтобы я плохо относился бы к kubespray. Скорее никак, но это выглядит крайней забавно https://github.com/kubean-io/kubean/blob/7db0f824e9acd58c882c94600092c0c1c394dfe8/pkg/util/entrypoint/entrypoint.go#L135
Оператор запускающий kubespray в виде кубернетес джоб
И является частью cncf
https://www.cncf.io/projects/kubean/
Оператор запускающий kubespray в виде кубернетес джоб
И является частью cncf
https://www.cncf.io/projects/kubean/
GitHub
kubean/pkg/util/entrypoint/entrypoint.go at 7db0f824e9acd58c882c94600092c0c1c394dfe8 · kubean-io/kubean
:seedling: Product ready cluster lifecycle management toolchains based on kubespray and other cluster LCM engine. - kubean-io/kubean
https://isovalent.com/blog/post/isovalent-load-balancer/
Так вот почему фичи по ингресс гейтвею в опенсорсе у cilium просели. :) Не осуждаю, это вполне логичное решение. Особенно с ростом количества компаний ориентированых на этот сегмент. Те же tetrate как пример.
Так вот почему фичи по ингресс гейтвею в опенсорсе у cilium просели. :) Не осуждаю, это вполне логичное решение. Особенно с ростом количества компаний ориентированых на этот сегмент. Те же tetrate как пример.
Isovalent
Introducing the Isovalent Load Balancer | Isovalent
We are delighted to announce the availability of the Isovalent Load Balancer, which is designed to distribute application traffic across heterogeneous environments (traditional data center/ on-prem, cloud-native, or self-hosted/managed Kubernetes).
https://github.com/nebius/helmrelease-trigger-operator
У fluxcd есть небольшой недостаток один - если изменить конфигмапу/секрет которые указаны в valueFrom - то флакс не заедеплоит его. Тут нужно ручное вмешательство. Данный оператор закрывает данный гап, в момент изменения конфигмапа, триггерит деплой helm контроллера флакса.
Кстати, у козистека есть похожая логика в их контроллере https://github.com/cozystack/cozystack/blob/main/internal/controller/system_helm_reconciler.go
У fluxcd есть небольшой недостаток один - если изменить конфигмапу/секрет которые указаны в valueFrom - то флакс не заедеплоит его. Тут нужно ручное вмешательство. Данный оператор закрывает данный гап, в момент изменения конфигмапа, триггерит деплой helm контроллера флакса.
Кстати, у козистека есть похожая логика в их контроллере https://github.com/cozystack/cozystack/blob/main/internal/controller/system_helm_reconciler.go
GitHub
GitHub - nebius/helmrelease-trigger-operator: A Kubernetes controller that automatically triggers FluxCD HelmRelease reconciliation…
A Kubernetes controller that automatically triggers FluxCD HelmRelease reconciliation when associated ConfigMaps are updated, enabling seamless configuration-driven GitOps workflows. - nebius/helmr...
👍5
https://github.com/kubernetes-sigs/controller-runtime/issues/3044
https://github.com/kubernetes-sigs/controller-runtime/issues/532
Прям неприятно был удивлён реализации пагинации с кешом контроллер рантайма. Оно как кот Шрёдингера.
И на скольких объектах я не экспериментировал, и сколько бы лимит не выставлял, получал Cached clients return incomplete object lists for paginated list calls. Стоило выкрутить CacheSyncTimeout (2 минут по-умолчанию) повыше, например на 5, 10 минут - пагинация начинает работать с кешом. Пока не понял до конца откуда эта магия появляется. Не сильно глубоко копал (может кто знает ответ?). Но довольно неприятный момент.
https://github.com/kubernetes-sigs/controller-runtime/issues/532
Прям неприятно был удивлён реализации пагинации с кешом контроллер рантайма. Оно как кот Шрёдингера.
И на скольких объектах я не экспериментировал, и сколько бы лимит не выставлял, получал Cached clients return incomplete object lists for paginated list calls. Стоило выкрутить CacheSyncTimeout (2 минут по-умолчанию) повыше, например на 5, 10 минут - пагинация начинает работать с кешом. Пока не понял до конца откуда эта магия появляется. Не сильно глубоко копал (может кто знает ответ?). Но довольно неприятный момент.
GitHub
Cached clients return incomplete object lists for paginated list calls · Issue #3044 · kubernetes-sigs/controller-runtime
Today, the cache reader does not support paginated list calls: controller-runtime/pkg/cache/internal/cache_reader.go Line 116 in aea2e32 return fmt.Errorf("continue list option is not supporte...
😁1
Кубернетичек
https://isovalent.com/blog/post/isovalent-load-balancer/ Так вот почему фичи по ингресс гейтвею в опенсорсе у cilium просели. :) Не осуждаю, это вполне логичное решение. Особенно с ростом количества компаний ориентированых на этот сегмент. Те же tetrate как…
https://isovalent.com/blog/post/isovalent-load-balancer-technical-deep-dive/
Подъехали технические детали, и я немного ... разочарован.
Пока все современноеые человечество контроллеры, даже энтерпрайз, идут в gateway api, изовалент стало делать свой crd. Kind: LBVIP - это аналог Kind: Gateway в рамках которого через Gateway.Spec.Addresses можно назначит любой VIP адрес. Ну, сделали и сделали.
Если посмотреть на архитектуру, то там ничего такого, чего бы нельзя было бы сделать в условном cilium + envoy/istio gateway в community edition. Ну ладно, добавили ipip между tier'ами (хотя kube-router это и в режиме dsr делал 7 лет назад).
Ну и ipip это как-то не молодежно, вон флара использует Foo-Over-UDP https://blog.cloudflare.com/high-availability-load-balancers-with-maglev/.
То есть продают они оператор, который может настраивать балансировку между нодами разного назначения tier-1 l4 balancer, и tier-2 l7.
Пызы:
https://highload.ru/2017/abstracts/2946
Видео 2017 года. Что назыается найдите отличия (кроме того, что в статье используется кубернетес и ebpf).
Подъехали технические детали, и я немного ... разочарован.
Пока все современн
Если посмотреть на архитектуру, то там ничего такого, чего бы нельзя было бы сделать в условном cilium + envoy/istio gateway в community edition. Ну ладно, добавили ipip между tier'ами (хотя kube-router это и в режиме dsr делал 7 лет назад).
Ну и ipip это как-то не молодежно, вон флара использует Foo-Over-UDP https://blog.cloudflare.com/high-availability-load-balancers-with-maglev/.
То есть продают они оператор, который может настраивать балансировку между нодами разного назначения tier-1 l4 balancer, и tier-2 l7.
Пызы:
https://highload.ru/2017/abstracts/2946
Видео 2017 года. Что назыается найдите отличия (кроме того, что в статье используется кубернетес и ebpf).
Isovalent
Technical Deep Dive: Isovalent Load Balancer
Isovalent Load Balancer delivers high-performance L3–L7 traffic management with eBPF, Envoy, GitOps workflows, and deep observability. Here’s the technical deep dive!
❤7
Кубернетичек
https://github.com/kubernetes-sigs/controller-runtime/issues/3044 https://github.com/kubernetes-sigs/controller-runtime/issues/532 Прям неприятно был удивлён реализации пагинации с кешом контроллер рантайма. Оно как кот Шрёдингера. И на скольких объектах…
https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/4988-snapshottable-api-server-cache/README.md#summary
В последнее время, все чаще разработчики закрывают старые болячки куба, сперва stale read через стримы пофиксили, теперь и проблему с пагинацией.
В последнее время, все чаще разработчики закрывают старые болячки куба, сперва stale read через стримы пофиксили, теперь и проблему с пагинацией.
GitHub
enhancements/keps/sig-api-machinery/4988-snapshottable-api-server-cache/README.md at master · kubernetes/enhancements
Enhancements tracking repo for Kubernetes. Contribute to kubernetes/enhancements development by creating an account on GitHub.
🤝8
Кубернетичек
То, что не удалось (по крайней мере в публичной плоскости, ссылка на мой пост об этом в реплае) OVH, удалось реализовать clever cloud. Etcd api-compatable поверх foundationdb. Технической информации мало, но очень интересно. То есть ребята сделали тоже, что…
https://github.com/melgenek/f8n
Тут подвезли etcdshim для FoundationDB.
Не знаю насколько выживет это вариант, предыдущие варианты быстро забрасывались. Все ещё удивляет, что не tidb, tikv, cocroachdb - а именно foundationdb для скейлинга стораджа куба появляются чаще всего.
Тут подвезли etcdshim для FoundationDB.
Не знаю насколько выживет это вариант, предыдущие варианты быстро забрасывались. Все ещё удивляет, что не tidb, tikv, cocroachdb - а именно foundationdb для скейлинга стораджа куба появляются чаще всего.
GitHub
GitHub - melgenek/f8n: K8S on FoundationDB
K8S on FoundationDB. Contribute to melgenek/f8n development by creating an account on GitHub.
https://github.com/kubernetes/kubernetes/pull/127525
С 1.33 при static policy, процессы а подах теперь не будут попадать под cfs quotas. Останется подтюнить cpu manager чтобы изолировал не только кубовые процессы, но и системные- тогда заживём!
С 1.33 при static policy, процессы а подах теперь не будут попадать под cfs quotas. Останется подтюнить cpu manager чтобы изолировал не только кубовые процессы, но и системные- тогда заживём!
GitHub
fix: pods meeting qualifications for static placement when cpu-manager-policy=static should not have cfs quota enforcement by scott…
What type of PR is this?
/kind bug
What this PR does / why we need it:
When cpu-manager-policy=static and the qualifications for static cpu assignment are satisfied (i.e. Containers have Guaranteed...
/kind bug
What this PR does / why we need it:
When cpu-manager-policy=static and the qualifications for static cpu assignment are satisfied (i.e. Containers have Guaranteed...
https://kubernetes.io/blog/2025/09/04/kubernetes-v1-34-introducing-psi-metrics-beta/
Я хотел написать про psi, но погуглил, кажется вот в этих постах написали более интересно, чем сделал бы я.
https://xn--r1a.website/azalio_tech/5
https://xn--r1a.website/troubleperf/73
То есть теперь нативно можно получать более подробную информацию о том, как вашиподы контейнеры процессы контролируемые кубом "страдают" от нехватки ресурсов, и страдают ли.
Я хотел написать про psi, но погуглил, кажется вот в этих постах написали более интересно, чем сделал бы я.
https://xn--r1a.website/azalio_tech/5
https://xn--r1a.website/troubleperf/73
То есть теперь нативно можно получать более подробную информацию о том, как ваши
Kubernetes
Kubernetes v1.34: PSI Metrics for Kubernetes Graduates to Beta
As Kubernetes clusters grow in size and complexity, understanding the health and performance of individual nodes becomes increasingly critical. We are excited to announce that as of Kubernetes v1.34, Pressure Stall Information (PSI) Metrics has graduated…
👍9🔥5❤2
Кубернетичек
https://github.com/nebius/helmrelease-trigger-operator У fluxcd есть небольшой недостаток один - если изменить конфигмапу/секрет которые указаны в valueFrom - то флакс не заедеплоит его. Тут нужно ручное вмешательство. Данный оператор закрывает данный гап…
https://github.com/fluxcd/flux2/issues/5446
С 2.7 версии, флакс теперь будет вотчить изменения вельюсов с секретов и конфигмапов
С 2.7 версии, флакс теперь будет вотчить изменения вельюсов с секретов и конфигмапов
GitHub
Watch ConfigMaps/Secrets referenced in Flux reconcilers · Issue #5446 · fluxcd/flux2
xref: fluxcd/helm-controller#1086 Both the Kustomization and HelmRelease APIs have fields for referencing ConfigMaps and Secrets containing values used for templating, i.e. that have a direct impac...
🎉4😁1
http://github.com/bchess/k8s-1m
Ну, почему бы и да
Ps: single instance с in-memory etcd без постинга лиз и ивентов, а целом, удивился, что не стал лизы и ивенты в отделный етцд выносить, ну да ладно.
Ну, почему бы и да
Ps: single instance с in-memory etcd без постинга лиз и ивентов, а целом, удивился, что не стал лизы и ивенты в отделный етцд выносить, ну да ладно.
GitHub
GitHub - bchess/k8s-1m: Run Kubernetes with a million nodes
Run Kubernetes with a million nodes. Contribute to bchess/k8s-1m development by creating an account on GitHub.
👍1