Forwarded from 𝚔𝚟𝚊𝚙𝚜
Вышел релиз v0.10 Open Source-платформы Cozystack: сетевая изоляция для тенантов, NATS, FerretDB, etcd-operator 0.4.0 и другие фичи
Релиз Cozystack v0.10.1 уже доступен для скачивания, установки или обновления текущих инсталяций инсталляции.
Основные изменения:
Добавлен FerretDB
Добавлен NATS в базовой конфигурации
В настройки tenant добавлена опция
В настройки ingress добавлена опция
В настройки ingress добавлена опция
В настройки ingress добавлена опция
Логотипы в дашборде теперь встроены напрямую в платформу, что не требует их загрузки с внешних серверов
Postgres: добавлен обработчик для автоматической установки корректных привилегий при создании схем
etcd-operator обновлён до версии v0.4 и теперь поддерживает онлайн изменение размера томов и включает podDisruptionBudget
ingress-nginx-controller обновлён до версии v1.11
Улучшена логика проброса пользовательского трафика в тенант кластера, теперь http и https трафик обрабатывается отдельно, каждый в своем порту
В ingress исправлен сбор метрик, дашборд теперь отображает подробные данные по пользовательским запросам и метрики
Кроме того, мы обновили etcd-оператор до версии 0.4.0 (он тоже включен в состав платформы):
- Добавлена возможность онлайн изменения размера томов
- Произведён рефакторинг кода, большая часть функций заменена на встроенные функции из библиотеки k8s
- Параметры, передаваемые пользователем для etcd, теперь сортируются для обеспечения детерминированного результата
Отдельное спасибо ребятам из нашего комьюнити, которые отправили немало PR'ов: mrkhachaturov, lllamnyp, makhov
Присоединяйтесь к нашим комьюнити:
👉 Cozystack
👉 etcd-operator
Релиз Cozystack v0.10.1 уже доступен для скачивания, установки или обновления текущих инсталяций инсталляции.
Основные изменения:
Добавлен FerretDB
Добавлен NATS в базовой конфигурации
В настройки tenant добавлена опция
isolated: <true|false>, включающая сетевую изоляцию между тенантамиВ настройки ingress добавлена опция
dashboard: <true|false>, включающая доступ к дашборду Cozystack через ingress-controllerВ настройки ingress добавлена опция
whitelist, позволяющая указать сети, с которых разрешён доступВ настройки ingress добавлена опция
cloudflareProxy, позволяющая восстановить реальный IP-адрес клиента при проксировании через CloudFlareЛоготипы в дашборде теперь встроены напрямую в платформу, что не требует их загрузки с внешних серверов
Postgres: добавлен обработчик для автоматической установки корректных привилегий при создании схем
etcd-operator обновлён до версии v0.4 и теперь поддерживает онлайн изменение размера томов и включает podDisruptionBudget
ingress-nginx-controller обновлён до версии v1.11
Улучшена логика проброса пользовательского трафика в тенант кластера, теперь http и https трафик обрабатывается отдельно, каждый в своем порту
В ingress исправлен сбор метрик, дашборд теперь отображает подробные данные по пользовательским запросам и метрики
Кроме того, мы обновили etcd-оператор до версии 0.4.0 (он тоже включен в состав платформы):
- Добавлена возможность онлайн изменения размера томов
- Произведён рефакторинг кода, большая часть функций заменена на встроенные функции из библиотеки k8s
- Параметры, передаваемые пользователем для etcd, теперь сортируются для обеспечения детерминированного результата
Отдельное спасибо ребятам из нашего комьюнити, которые отправили немало PR'ов: mrkhachaturov, lllamnyp, makhov
Присоединяйтесь к нашим комьюнити:
👉 Cozystack
👉 etcd-operator
🔥7❤1
𝚔𝚟𝚊𝚙𝚜
Вышел релиз v0.10 Open Source-платформы Cozystack: сетевая изоляция для тенантов, NATS, FerretDB, etcd-operator 0.4.0 и другие фичи Релиз Cozystack v0.10.1 уже доступен для скачивания, установки или обновления текущих инсталяций инсталляции. Основные изменения:…
В общем за последнее время решал несколько интересных задач связанных с nginx-ingress. Основная проблема была связанны с пробросом трафика из management-кластера в пользовательские. Так как и там и там используется ingress-nginx, пробрасывать нужно достаточно хитро 80 порт в 80, а 443 в 443.
Сюрприз ванильный nginx-ingress так не умеет. Можно создать ресурс Ingress с одинаковыми правилами для разных портов но трафик всё-равно польётся только на один из них.
В общем после глубокого курения исходников, решение было найдено:
костыль-не костыль а работает
Сюрприз ванильный nginx-ingress так не умеет. Можно создать ресурс Ingress с одинаковыми правилами для разных портов но трафик всё-равно польётся только на один из них.
В общем после глубокого курения исходников, решение было найдено:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/backend-protocol: AUTO_HTTP
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($scheme = http) {
set $proxy_upstream_name "mynamespace-myservice-80";
set $proxy_host $proxy_upstream_name;
set $service_port 80;
}
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
labels:
app.kubernetes.io/managed-by: Helm
name: myservice
namespace: mynamespace
spec:
ingressClassName: mynamespace
rules:
- host: example.org
http:
paths:
- backend:
service:
name: myservice
port:
number: 443
path: /
pathType: ImplementationSpecific
- backend:
service:
name: myservice
port:
number: 80
path: /
pathType: ImplementationSpecific
костыль-не костыль а работает
👍8😁2
Ещё одна проблема с которой сегодня столкнулся и для которой понадобился экстренный фикс - это если
Ситуация маслом на полотне:
При этом поды запуститься не могут из-за того что не могут спулить новый image. Пришлось повозитсья с bind mounts чтобы вынести их на общий раздел.
/var/lib/kubelet и /var/lib/containerd находятся на разных разделах, то в Kubernetes не работает нормально garbage collection.Ситуация маслом на полотне:
/var/lib/containerd переполнен, а кубелет смотрит себе под ноги в /var/lib/kubelet и говорит что всё нормально: "ещё целых 95% свободного места".При этом поды запуститься не могут из-за того что не могут спулить новый image. Пришлось повозитсья с bind mounts чтобы вынести их на общий раздел.
👍7🤯6😁5
Смотрите что тут на Википедии вычитал. Опенсорсное пиво. И кола распространяющаяся под GPL 🍻
- https://ru.m.wikipedia.org/wiki/Vores_%C3%98l
- https://ru.m.wikipedia.org/wiki/OpenCola
- https://ru.m.wikipedia.org/wiki/Vores_%C3%98l
- https://ru.m.wikipedia.org/wiki/OpenCola
Wikipedia
Vores Øl
Vores Øl (с дат. — «Наше Пиво») — первый open source сорт пива.
❤🔥4👍3
Сегодня был интересный кейс с настройкой registry mirroring в Harbor.
Harbor позволяет сделать прокси-репозиторий для популярных сервисов вроде docker.io, ghcr.io, quay.io и gcr.io
Проблема заключается в том, что они могут быть настроены только как отдельный проект, то есть чтобы спулить алпайн с ghcr.io через ваш harbor, вмeсто:
вам придётся делать:
То есть path у имаджей меняется, и вы не сможете указать myharbor.org в конфигурации для registry mirrors в докере, которая выглядит следующим образом и не принимает настройки для изменённого path:
Решение довольно простое - это настроить оверрайды в nginx, чтобы при пуле с определённого поддомена:
пулинг имаджа в действительности происходил с
таким образом можно настроить сразу несколько registry mirrors на разные проекты в Harbor:
и имаджи будут пулиться через них автоматически в прозрачном режиме, даже если вы запукаете:
первая попытка спулить имадж пойдёт через кэширующий Harbor
—-
На самом деле проблеме уже несколько лет, и есть GitHub Issue, где энтузиасты накидали готовых решений, которые позволяют это делать полностью в автоматическом режиме.
Собственно у меня без проблем заработала следующая конфигурация:
https://github.com/goharbor/harbor/issues/8082#issuecomment-2258660093
Harbor позволяет сделать прокси-репозиторий для популярных сервисов вроде docker.io, ghcr.io, quay.io и gcr.io
Проблема заключается в том, что они могут быть настроены только как отдельный проект, то есть чтобы спулить алпайн с ghcr.io через ваш harbor, вмeсто:
docker pull ghcr.io/linuxcontainers/alpine:latest
вам придётся делать:
docker pull myharbor.org/ghcr-proxy/linuxcontainers/alpine:latest
То есть path у имаджей меняется, и вы не сможете указать myharbor.org в конфигурации для registry mirrors в докере, которая выглядит следующим образом и не принимает настройки для изменённого path:
{
"registry-mirrors": ["https://myharbor.org"]
}Решение довольно простое - это настроить оверрайды в nginx, чтобы при пуле с определённого поддомена:
docker pull ghcr-proxy-myharbor.org/linuxcontainers/alpine:latest
пулинг имаджа в действительности происходил с
myharbor.org/ghcr-proxy/linuxcontainers/alpine:latestтаким образом можно настроить сразу несколько registry mirrors на разные проекты в Harbor:
{
"registry-mirrors": ["https://ghcr-proxy-myharbor.org", "https://docker-proxy-myharbor.org"]
}и имаджи будут пулиться через них автоматически в прозрачном режиме, даже если вы запукаете:
docker pull ghcr.io/linuxcontainers/alpine:latest
первая попытка спулить имадж пойдёт через кэширующий Harbor
—-
На самом деле проблеме уже несколько лет, и есть GitHub Issue, где энтузиасты накидали готовых решений, которые позволяют это делать полностью в автоматическом режиме.
Собственно у меня без проблем заработала следующая конфигурация:
https://github.com/goharbor/harbor/issues/8082#issuecomment-2258660093
GitHub
Proxy cache · Issue #8082 · goharbor/harbor
enable proxy cache for Harbor. This is very useful in situations of intermittent network connectivity where you still need access to local images. the expectation is that the network will go off in...
🔥8👍5❤1
Forwarded from Ænix.io
Мы рады представить новый COSI-драйвер для SeaweedFS.
COSI - это унифицированный Container Object Storage Interface для Kubenretes.
Он вводит новые сущности, такие как
Мы работаем над добавлением поддержки S3-бакетов в Cozystack, и этот драйвер позволит вам автоматически заказывать бакеты прямо из Kubernetes.
Это ещё один проект который мы разработали в open-source и теперь дарим сообществу SeaweedFS.
Проект уже перемещён под крыло организации, а официальный чарт SeaweedFS расширен для добавления поддержки COSI
https://github.com/seaweedfs/seaweedfs-cosi-driver/
COSI - это унифицированный Container Object Storage Interface для Kubenretes.
Он вводит новые сущности, такие как
BucketClaim, Bucket и BucketAccess для декларированного провиженинка S3-бакетов и управления доступа к ним по принципу PVC.Мы работаем над добавлением поддержки S3-бакетов в Cozystack, и этот драйвер позволит вам автоматически заказывать бакеты прямо из Kubernetes.
Это ещё один проект который мы разработали в open-source и теперь дарим сообществу SeaweedFS.
Проект уже перемещён под крыло организации, а официальный чарт SeaweedFS расширен для добавления поддержки COSI
https://github.com/seaweedfs/seaweedfs-cosi-driver/
GitHub
seaweedfs-cosi-driver/examples at main · seaweedfs/seaweedfs-cosi-driver
Contribute to seaweedfs/seaweedfs-cosi-driver development by creating an account on GitHub.
👍13🔥5😁1🤔1
Наши клиенты опубликовали статью на Хабр об их опыте использования Cozystack:
https://habr.com/ru/companies/aenix/articles/834682/
https://habr.com/ru/companies/aenix/articles/834682/
Хабр
Погружение в облака: K8S по следам Ænix с gohost. Часть 1. Установка Kubernetes-кластера под управлением Cozystack
Привет! Я Владислав Карабасов, работаю в казахстанской хостинговой компании gohost. Сюда я перешел из университета, которому отдал без малого 20 лет, в том числе был руководителем Центра...
🔥8❤1👎1
Крутейший способ установки Proxmox официальным установщиком в Hetzner.
Если в кратце в rescue поднимается виртуалка, в неё прокидываются основные девайсы и vnc, через который можно накатить proxmox прямо в графическом режиме.
https://gist.github.com/gushmazuko/9208438b7be6ac4e6476529385047bbb
Если в кратце в rescue поднимается виртуалка, в неё прокидываются основные девайсы и vnc, через который можно накатить proxmox прямо в графическом режиме.
https://gist.github.com/gushmazuko/9208438b7be6ac4e6476529385047bbb
Gist
Install any OS on Hetzner VDS | Proxmox with ZFS on Hetzner VDS.md
GitHub Gist: instantly share code, notes, and snippets.
👍3
ITTales :(){ :|:& };:
Последнее время много билжу с buildx локально. Всё потому, что настроить нормальный пайплайн нужно время, которого у меня сейчас очень в обрез. А если билдить локально, то настраивать ничего не нужно, обратная связь быстрее и артефакты прямо под рукой. Но…
Как же я кайфую от buildx. Недавно писал как можно билдить на удалённой машине через SSH.
А есть вариант и покруче - билдить прямо в кубе:
Уже и не вижу особой необходимости в kaniko
А есть вариант и покруче - билдить прямо в кубе:
docker buildx create \
--bootstrap \
--name=buildkit \
--driver=kubernetes \
--driver-opt=namespace=tenant-kvaps,replicas=2 \
--platform=linux/amd64 \
--platform=linux/arm64 \
--use
Уже и не вижу особой необходимости в kaniko
Telegram
ITTales :(){ :|:& };:
Последнее время много билжу с buildx локально. Всё потому, что настроить нормальный пайплайн нужно время, которого у меня сейчас очень в обрез.
А если билдить локально, то настраивать ничего не нужно, обратная связь быстрее и артефакты прямо под рукой.
…
А если билдить локально, то настраивать ничего не нужно, обратная связь быстрее и артефакты прямо под рукой.
…
🔥10❤3👍2
Forwarded from Timur Tukaev
В эту пятницу в 20:00 (по мск)
Live: Kubernetes 1.30. Безопасность и нововведения с Georg Gaal @gecube и Aleksey Fedulaev @int0x80h
Прямая трансляция:
с ответами на вопросы из чата YouTube
Здесь тоже будет стрим)
При поддержке:
@kubernetes_ru
@itstand_org
@devops_nn
@devopsforlove
🔥IT STAND |FIDELINA.RU | Бот
Live: Kubernetes 1.30. Безопасность и нововведения с Georg Gaal @gecube и Aleksey Fedulaev @int0x80h
Прямая трансляция:
с ответами на вопросы из чата YouTube
Здесь тоже будет стрим)
При поддержке:
@kubernetes_ru
@itstand_org
@devops_nn
@devopsforlove
🔥IT STAND |
👍1
Forwarded from 𝚔𝚟𝚊𝚙𝚜
Вышел релиз v0.11 Open Source-платформы Cozystack: S3, улучшенная изоляция тенантов, UI и другие фичи
Релиз Cozystack v0.11 уже доступен для скачивания, установки или обновления текущих инсталяций.
Основные изменения:
— Добавлена поддержка S3. Подготовлена базовая реализация SeaweedFS в Cozystack. Написан Kubernetes-COSI-драйвер автоматического заказа S3-бакетов. В чарт SeaweedFS добавлена поддержка автоматического ресайза томов.
— Сетевая изоляция между тенантами. Произведена большая работа по улучшению сетевой изоляции между тенантами, исправлены баги, полностью переработаны сетевые политики.
— Обновление UI. Заменены все иконки сервисов. Дашборд переработан так, чтобы выводить только необходимую информацию в ResourceView. Теперь есть возможность указать конкретные htcehcs для показа посредством перечисления их в специальной роли
— В документации добавлен раздел Development Guide и обновлена инструкция по установке в Hetzner
— Cilium обновлен до версии v1.16, эта версия включает наш патч для автоматического детекта devices.
— Решена проблема со сборщиком мусора в tenant Kubernetes-кластерах.
— Решена проблема с пробросом HTTP- и HTTPS-трафика с помощью ingress в tenant Kubernetes-кластера.
— Добавлены snapshot-controller и object-storage-controller.
— LINSTOR обновлен до версии v1.28.
— Предоставляемый платформой образ Talos Linux с необходимыми драйверами обновлен до версии v1.7.6
— Kube-OVN переведен на сборку из стабильной базы.
— Переработана логика подстановки image digests в values, оригинальные чарты теперь меньше модифицируются.
— Улучшение DX: Переработана логика подстановки image digests в values, оригинальные чарты теперь меньше модифицируются при обновлении.
Присоединяйтесь к нашему комьюнити:
👉 Cozystack
Релиз Cozystack v0.11 уже доступен для скачивания, установки или обновления текущих инсталяций.
Основные изменения:
— Добавлена поддержка S3. Подготовлена базовая реализация SeaweedFS в Cozystack. Написан Kubernetes-COSI-драйвер автоматического заказа S3-бакетов. В чарт SeaweedFS добавлена поддержка автоматического ресайза томов.
— Сетевая изоляция между тенантами. Произведена большая работа по улучшению сетевой изоляции между тенантами, исправлены баги, полностью переработаны сетевые политики.
— Обновление UI. Заменены все иконки сервисов. Дашборд переработан так, чтобы выводить только необходимую информацию в ResourceView. Теперь есть возможность указать конкретные htcehcs для показа посредством перечисления их в специальной роли
<name>-dashboard-resources. На данный момент подобная информация уже выводится для приложений Kubernetes, Postgres, Monitoring и S3-bucket.— В документации добавлен раздел Development Guide и обновлена инструкция по установке в Hetzner
— Cilium обновлен до версии v1.16, эта версия включает наш патч для автоматического детекта devices.
— Решена проблема со сборщиком мусора в tenant Kubernetes-кластерах.
— Решена проблема с пробросом HTTP- и HTTPS-трафика с помощью ingress в tenant Kubernetes-кластера.
— Добавлены snapshot-controller и object-storage-controller.
— LINSTOR обновлен до версии v1.28.
— Предоставляемый платформой образ Talos Linux с необходимыми драйверами обновлен до версии v1.7.6
— Kube-OVN переведен на сборку из стабильной базы.
— Переработана логика подстановки image digests в values, оригинальные чарты теперь меньше модифицируются.
— Улучшение DX: Переработана логика подстановки image digests в values, оригинальные чарты теперь меньше модифицируются при обновлении.
Присоединяйтесь к нашему комьюнити:
👉 Cozystack
🔥11👍6👎2
Visor предоставляет набор утилит для удобного анализа и визуализации сетевого трафика.
https://github.com/wildberries-tech/pkt-tracer
https://github.com/wildberries-tech/pkt-tracer
🔥1
Мы обновили плагин kubectl-node-shell v1.11.0
- Добавились опции
- Добавилась переменная
- Добавилась возможность подключения томов с помощью опции
Большое спасибо @jmcshane, @huandu и @bernardgut, которые добавили эти замечательные функции в новую версию плагина
- Добавились опции
--no-mount, --no-net, --no-ipc, --no-uts для отключения автоматического входа в указанные linux-неймспейсы- Добавилась переменная
KUBECTL_NODE_SHELL_IMAGE_PULL_SECRET_NAME для указания pullSecret для пуллинга образа- Добавилась возможность подключения томов с помощью опции
-m, подключённые тома могут быть найдены в директории /opt-pvcБольшое спасибо @jmcshane, @huandu и @bernardgut, которые добавили эти замечательные функции в новую версию плагина
GitHub
Release v1.11.0 · kvaps/kubectl-node-shell
What's Changed
Add flags for netns attach by @jmcshane in #68
Add KUBECTL_NODE_SHELL_IMAGE_PULL_SECRET_NAME to customize imagePullSecrets by @huandu in #62
[Feature] Adding ability to mount CS...
Add flags for netns attach by @jmcshane in #68
Add KUBECTL_NODE_SHELL_IMAGE_PULL_SECRET_NAME to customize imagePullSecrets by @huandu in #62
[Feature] Adding ability to mount CS...
🔥9👍5
Forwarded from Timur Tukaev
@kvaps тут отсыпал базы в блоге Kubernetes и рассказал про Aggregation API Layer и реализацию api-server на его основе в Cozystack https://kubernetes.io/blog/2024/11/21/dynamic-kubernetes-api-server-for-cozystack/
Kubernetes
How we built a dynamic Kubernetes API Server for the API Aggregation Layer in Cozystack
Hi there! I'm Andrei Kvapil, but you might know me as @kvaps in communities dedicated to Kubernetes and cloud-native tools. In this article, I want to share how we implemented our own extension api-server in the open-source PaaS platform, Cozystack.
Kubernetes…
Kubernetes…
👍4
Forwarded from 𝚔𝚟𝚊𝚙𝚜
ITTales :(){ :|:& };:
@kvaps тут отсыпал базы в блоге Kubernetes и рассказал про Aggregation API Layer и реализацию api-server на его основе в Cozystack https://kubernetes.io/blog/2024/11/21/dynamic-kubernetes-api-server-for-cozystack/
Теперь на русском
https://habr.com/ru/companies/aenix/articles/832824/
https://habr.com/ru/companies/aenix/articles/832824/
Хабр
Как мы создавали динамический Kubernetes API server для API Aggregation Layer в Cozystack
Привет! Я Андрей Квапил, вы можете знать меня под ником kvaps в сообществах, посвященных Kubernetes и cloud native-инструментам. В этой статье я хотел рассказать, как мы реализовали собственный...
👍8❤2