Сегодня был интересный кейс с настройкой 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
Forwarded from Geeks (Shpak A.)
Распробовал на днях утилиту sq. Если jq - это инструмент для выборки и красивой визуализации данных из джейсонок, то sq - это все тоже самое (и даже чуть больше), но для баз данных. Выглядит прикольно, использовать (после jq) достаточно интуитивно, есть прикольные плюшки (например, просмотр диффа двух таблиц), умеет импортировать/экспортивароть данные. И, естественно, это опенсорсный проект. В общем, мне понравлось настолько, что не стыдно и вам показать https://sq.io/
sq
sq data wrangler
👍15
Forwarded from Гепардово гнездо
Еще про проклятые фичи баша
https://yossarian.net/til/post/some-surprising-code-execution-sources-in-bash
tl;dr: вот эта функция на баше при передаче «правильного» аргумента может привести к выполнению произвольного кода:
Мораль проста:не пишите на баше не передавайте в bash-скрипты недоверенные данные
https://yossarian.net/til/post/some-surprising-code-execution-sources-in-bash
tl;dr: вот эта функция на баше при передаче «правильного» аргумента может привести к выполнению произвольного кода:
function guess() {
num="${1}"
if [[ "${num}" -eq 42 ]]
then
echo "Correct"
else
echo "Wrong"
fi
}Мораль проста:
👍6
Forwarded from Sergey Trapeznikov
image_2024-12-06_21-38-50.png
104 KB
чем левее, тем больше гемора
💯10😁4👍2