DevOps-им по-взрослому
152 subscribers
79 photos
32 files
60 links
Download Telegram
#k8s, #gitops, #argocd

🖼️ Push vs Pull - методы деплоя

🎶 Самый классический и базовый способ - push. Вы пишите код, заливаете его в репозиторий, срабатывает пайплайн. В процессе собирается и загружается в реестр образ приложения и затем через docker run/kubectl apply/helm install происходит замена тега.

Я много писал про этот способ. helm 🖼️ или kustomize - ультрабаза. Но с относительно недавних времён я начал применять Pull модель для инфраструктурных приложении. Про это (и GitOps подход) я писал в другой статье. Это в разы удобнее того, что было до внедрения арго 🖼️: разбросанные по всему репозиторию конфиги и забытые обновления ресурсов.

Но если для относительно статичных приложении это ок, то что насчёт приложении, которые находятся в разработке и обновляются несколько раз в день? На этот случай у ArgoCD 🖼️ (у FluxCD есть собственное) есть расширение Argo CD Image Updater.

🧑‍🎓 Argo CD Image Updater позволяет автоматически обновлять тег образа у заданного ресурса. Это и есть Pull модель! Всё то же самое, как и при push, но после загрузки образа нам не нужно ничего самим обновлять. Единственное ограничение - ресурс должен находится под управлением Argo CD (Application) и использовать kustomize/helm.

⌨️ Чтобы добавить данную штуку, нужно добавить следующие аннотации для ресурса Application:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
annotations:
argocd-image-updater.argoproj.io/image-list: ping=ghcr.io/azamatkomaev/argo-image-updater-demo
argocd-image-updater.argoproj.io/ping.pull-secret: pullsecret:argocd/google-registry
argocd-image-updater.argoproj.io/ping.update-strategy: newest-build


✍️ Тут я указал название образа, стратегию обновления (в моем случае самый последний загруженный образ в реестр), а так же данные для доступа к реестру. Каждые две минуты контроллер image updater-а будет анализировать приложения с необходимыми аннотациями и обновлять тег. А еще тут красивый GUI =)

Ссылка на репозиторий с примером: тык
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
#devops, #aws, #cloud

В России 🇷🇺 уже давно душат зарубежные облачные провайдеры. Начиналось это с требования переноса личных данных граждан на территорию страны. Теперь взялись и за блокировку ресурсов, которые разворачиваются на серверах облаков таких как AWS. Но это не означает, что теперь мы не можем использовать ресурсы этих компании! Конечно, Amazon, Google, DigitalOcean следуют санкциям США, но физ.лица под них не попадают. Зарегистрировать аккаунт все еще можно, но указать Россию или Беларусь в качестве страны - нет.

🤓 Для подтверждения номера можно использовать онлайн сервисы для приема одноразовых СМС или же указать Казахстан и ввести российский номер. Это сработает, потому что у обеих стран код начинается с +7. С привязкой карты сложнее. Легче всего для россиян открывают счета в странах Центральной Азии (Кыргызстан, Узбекистан, Таджикистан). Можно открыть в Грузии, но с личным посещением. В любом случае придется платить за обслуживание $5-$10 в месяц 💸

Адрес можно указать любой, но будьте готовы, что AWS может запросить подтверждение. Так и случилось со мной после переноса сервера из одной зоны в другую. Поддержка облака запросила у меня доказательства моего проживания в Стамбуле 😬. Я получил копию договора с мобильным оператором, где был указан номер телефона и российский адрес, в настройках профиля AWS поменял место на этот адрес. И все сработало!

- А зачем мне это?
Опыт с российскими облаками ценится только внутри страны и в некоторых регионах СНГ. Конечно, имея опыт с условным Yandex.Cloud можно легко "вкатиться" в любое другое, но все же везде свои нюансы.

P.S. А еще AWS дает жирный Free tier, например целую ВМ бесплатно на год. Она отлично подходит для трёх букв 🤫
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3
#travelling, #notAboutIT
Грузия 🇬🇪, Азербайджан 🇦🇿, Армения 🇦🇲. Читать тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🤨3❤‍🔥1