Forwarded from Технологический Болт Генона
cat > tetris.yaml <<EOF
apiVersion: retro.sparkfabrik.com/v1
kind: Game
metadata:
name: tetris
namespace: games
spec:
name: "Tetris"
zipUrl: "http://192.168.30.6/f-tetris.zip"
dir: "."
exe: "F-TETRIS.EXE"
EOF
Retro DOS Games on Kubernetes
https://williamlam.com/2021/02/retro-dos-games-on-kubernetes.html
+
A retrogames kubernetes controller built in Javascript
https://github.com/paolomainardi/additronk8s-retrogames-kubernetes-controller
Всем хороших выходных! ❤️
Forwarded from Hacker News
Ask HN: Small scripts, hacks and automations you're proud of?
Article, Comments
Article, Comments
Forwarded from DevSecOps Talks
Kubernetes Controllers: For, Owns, Watches
Всем привет!
В сети не всегда просто найти хорошую статью про написание собственных Kubernetes Operators/Controllers. Особенно, если интересует не «общая картинка», а какие-то частности.
В статье Автор разбирает разницу между конструкциями
Для этого рассматривается пример:
🍭 Создается Custom Resource
🍭 Controller узнает об этом и создает pod (
Далее расписывается логика реконсиляции controller’a. Наглядно описывается как можно это реализовать не делая еще один Controller, который бы смотрел за каждым pod и его labels – как раз тот самый
В завершении – описание функции
P.S. Про awesome подборку написания Kubernetes Operators мы писали тут.
Всем привет!
В сети не всегда просто найти хорошую статью про написание собственных Kubernetes Operators/Controllers. Особенно, если интересует не «общая картинка», а какие-то частности.
В статье Автор разбирает разницу между конструкциями
for()
, owns()
и get()
при регистрации controller через SetupWithManager
.Для этого рассматривается пример:
🍭 Создается Custom Resource
🍭 Controller узнает об этом и создает pod (
nginx:latest
), присваивает ему label
– foo:bar
🍭 Controller должен гарантировать наличие указанных label
. Т.е. add/update/delete
не должны «срабатывать»Далее расписывается логика реконсиляции controller’a. Наглядно описывается как можно это реализовать не делая еще один Controller, который бы смотрел за каждым pod и его labels – как раз тот самый
owns()
.В завершении – описание функции
watches()
, которая лежит в основе for()
и owns()
. В статье много примеров и кода для собственного воспроизведения примера. P.S. Про awesome подборку написания Kubernetes Operators мы писали тут.
Medium
Develop on Kubernetes Series — Demystifying the For vs Owns vs Watches controller-builders in…
Hi everyone, it’s been a while. Last year was hectic and my blog writing reduced quite substantially. But since the past few days I was…
Forwarded from Код и Капуста
Крутая идея - сделать так, чтоб при запуске гошного сервиса, к нему можно было сразу достучаться из вне через ngrok
Специально для этого сделали пакет ngrok-go
А есть опенсорсные аналоги ngrok? Так чтоб у себя на сервере поднять и через апишку сабдомены заводить
#golang
https://blog.ngrok.com/posts/ngrok-go
Специально для этого сделали пакет ngrok-go
А есть опенсорсные аналоги ngrok? Так чтоб у себя на сервере поднять и через апишку сабдомены заводить
#golang
https://blog.ngrok.com/posts/ngrok-go
https://medium.com/@bob.s.walters/using-istio-with-nginx-ingress-for-a-b-service-shifting-7b39596db2fe
#istio #ingress #nginx
#istio #ingress #nginx
Medium
Using Istio with nginx-ingress for A/B Service Shifting
This article demonstrates the ability to use Istio traffic management features (e.g. Virtual Services) to route traffic arriving at an…
Forwarded from Технологический Болт Генона
Move Kubernetes PVCs between Storage Classes and Namespaces
https://github.com/BeryJu/korb
https://github.com/BeryJu/korb
Forwarded from ☕️ Мерлин заваривает τσάι 🐌
Забавный датасет в формате API на тему "Рика и Морти"
Есть доступ через REST и GraphQL.
ИМХО можно использовать в примерах и hello world приложениях в качестве "какого-нибудь API"
https://rickandmortyapi.com/
Есть доступ через REST и GraphQL.
ИМХО можно использовать в примерах и hello world приложениях в качестве "какого-нибудь API"
https://rickandmortyapi.com/
The Rick and Morty API
The Rick and Morty API is a REST and GraphQL API based on the television show Rick and Morty
Forwarded from DevSecOps Talks
Kube-apiserver в роли port scanner
Всем привет!
Еще одна потрясающая статья от Rory McCune, посвященная «своеобразному» использованию возможностей Kubernetes. Нет, это не уязвимость, это не bug, это не ошибка.
Kubernetes устроен таким образом, что он может осуществлять сетевые запросы на внешние адреса в некоторых ситуациях. Например, в случае с Validating Webhooks. Таким образом можно реализовать некий аналог SSRF и превратить Kubernetes в «сканер портов».
Rory проделал следующее:
🍭 Создается namespace
🍭 Регистрируется webhook. Никакой сервер, обрабатывающий запрос не регистрируется. Вместо этого указывается потенциальная «жертва»
🍭 Создается pod в указанном namespace. Готово! В сообщении об ошибки получаем всю необходимую информацию
PoC того, что описано выше можно найти в repo. Если интересно посмотреть небольшую демонстрацию, ее можно найти в блоге Rory.
P.S. Лучше не проверять этот, пусть и крайне базовый PoC на каких-либо настоящих сервисах и/или в production-окружениях.
Всем привет!
Еще одна потрясающая статья от Rory McCune, посвященная «своеобразному» использованию возможностей Kubernetes. Нет, это не уязвимость, это не bug, это не ошибка.
Kubernetes устроен таким образом, что он может осуществлять сетевые запросы на внешние адреса в некоторых ситуациях. Например, в случае с Validating Webhooks. Таким образом можно реализовать некий аналог SSRF и превратить Kubernetes в «сканер портов».
Rory проделал следующее:
🍭 Создается namespace
🍭 Регистрируется webhook. Никакой сервер, обрабатывающий запрос не регистрируется. Вместо этого указывается потенциальная «жертва»
🍭 Создается pod в указанном namespace. Готово! В сообщении об ошибки получаем всю необходимую информацию
PoC того, что описано выше можно найти в repo. Если интересно посмотреть небольшую демонстрацию, ее можно найти в блоге Rory.
P.S. Лучше не проверять этот, пусть и крайне базовый PoC на каких-либо настоящих сервисах и/или в production-окружениях.
raesene.github.io
Fun with SSRF - Turning the Kubernetes API Server into a port scanner
Forwarded from k8s (in)security (Дмитрий Евдокимов)
В рамках изучения
-
Также там поднимается вопрос/проблема, что при модели
Cilium Service Mesh
и Istio Ambient Mesh
(прошлые посты 1,2) я наткнулся на занимательную статью "Exploring Cilium Layer 7 Capabilities Compared to Istio". Там сравниваются не Service Mesh
реализации, а L7
возможности стандартного CNI Cilium
(v1.12) и sidecar
реализации Istio
. И из этой статьи можно узнать много всего интересного о деталях реализации CNI Cilium
и Istio
, а именно:-
L7
фильтрация в ресурсе CiliumNetworkPolicy
реализована как расширение/фильтр (Cilium.L7Policy
) для Envoy proxy
- Как выглядит/хранится L7
правило внутри CNI Cilium
- CNI Cilium
использует для этого Envoy filter, а Istio
использует RBAC filters из апстрима Envoy
- чем является identity
в Cilium
, как он вычисляется (база это IP
, labels
) и хранится (это никакой не криптографический приметив, а просто целое число). А в Istio
для этого служит service account token
- там вообще все сроиться вокруг сертификатов, что как вы понимаете надежнееТакже там поднимается вопрос/проблема, что при модели
Envoy per Node
ресурсов потребляется меньше, но в случае его отказа страдают сразу все микросервисы на Node
. Есть и еще одна интересная проблема с Network cache-based identity
, что как я написал выше используется в Cilium
, но это заслуживает отдельной заметки ;)Telegram
k8s (in)security
Наконец-то мои руки дошли до новых сетевых фишек/реализациях в Kubernetes, а если быть более конкретным то до двух проектов: Cilium Service Mesh и Istio Ambient Mesh. При этом хотелось с ними познакомиться параллельно, чтобы можно было производить сравнение…
Forwarded from Код и Капуста