Как стать автором
Обновить
0
0
Павел @OmIkRoNiXz

Пользователь

Отправить сообщение

Инструкция: как быстро настроить GitLab CI/CD на Flutter-проекте

Время на прочтение 12 мин
Количество просмотров 6.1K

Привет! Я Александр Омельяненко, Flutter-разработчик в AGIMA. Недавно мне понадобилось быстро настроить CI/CD на Flutter-проекте. Те несколько руководств, что я нашел в интернете по этой теме, были либо с нерабочими примерами, либо запутанные и просто плохого качества. Но всё же какое-то представление я получил. Плюс задал вопросы коллегам. Набивая шишки по пути, я-таки настроил CI/CD на своем проекте. Но мне тогда очень пригодилась бы четкая инструкция. Поэтому я решил написать ее сам по горячим следам. Сегодня делюсь ею с вами и надеюсь, эта инструкция облегчит жизнь тем, кто настраивает CI/CD на Flutter-проекте прямо сейчас.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 13

Шаг за шагом: Реализация автоматического резервного копирования PostgreSQL в Kubernetes и его синхронная отправка на S3

Уровень сложности Средний
Время на прочтение 27 мин
Количество просмотров 6.3K


Привет! У каждого из нас бывает что после какой-то задачи, ты хочешь чем-то поделиться. Но зачастую мотивации хватает только на поделиться в рамках внутреннего Confluence. Сейчас, я реализовал решение которое объявлено в названии статьи. Сразу хотелось бы сказать, что я не претендую на истину в последней инстанции со своим решением, оно просто отражает путь который пройден мной. Более того, СУБД в кластере здесь тоже не предмет для обсуждения.

Читать дальше →
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 9

Grafana Beyla: автоинструментарий eBPF с открытым исходным кодом для наблюдения за приложением

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 4.8K

Часто для правильной интеграции инструментов мониторинга в приложение приходится добавлять агент мониторинга Observability в развертывание или пакет. А в таких языках, как Go, нужно вручную добавлять точки трассировки. В любом случае после добавления инструментов придётся выполнить повторное развертывание в промежуточную или производственную среду.

Автоинструментарий упрощает внедрение Observability. С гордостью представляем Grafana Beyla — автоинструментарий eBPF с открытым исходным кодом, который сейчас в стадии публичного тестирования. Beyla сообщает данные о задержках для основных запросов, а также метрики RED (Rate-Errors-Duration) для сервисов Linux HTTP/S и gRPC — и всё это без модификации кода для ручной вставки зондов.

В этой статье мы рассмотрим, как установить и настроить Grafana Beyla с помощью Grafana Cloud для улучшения наблюдаемости приложений. Ещё поделимся планами на будущее.

Читать далее
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 1

Keycloak. Standalone-HA в k8s и закрытие админки на ingress-e с переводом на localhost

Уровень сложности Сложный
Время на прочтение 8 мин
Количество просмотров 3.3K
Привет, Хаброжители! Продолжаем делиться с вами экспертизой отдела Security services infrastructure (департамент Security Services компании «Лаборатории Касперского»).
Предыдущую статью нашей команды вы можете прочесть вот здесь: Keycloak. Админский фактор и запрет аутентификации

В этой части продолжим настраивать IAM с упором на отказоустойчивость и безопасность. Статья рассчитана на людей, которые ранее были знакомы с IAM и, в частности, с keycloak-ом. Поэтому в этой части не будет «базы» по SAML2, OAuth2/OIDC и в целом по IAM (на Хабре есть хорошие статьи на эту тему). Также для понимания данной статьи необходимы знания базовых абстракций kubernetes и умение читать его манифесты.



Рассмотрим два кейса:
  1. Как в свежей версии keycloak (v.22.0.3) настроить отказоустойчивость при развертывании в k8s в режиме standalone-ha.
  2. Как закрыть ненужные векторы атаки, ограничив пользователям доступ только до нужных путей, но оставив возможность админам заходить на консоль админки keycloak.

Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 7

Пример настройки Linux для высоконагруженных кластеров Kubernetes

Время на прочтение 5 мин
Количество просмотров 7.7K

Довольно часто можно встретить примеры настройки (тюнинга) сетевого стека Linux для высоконагруженных систем, однако некоторые из этих гайдов сильно устарели и не используют рекомендованные подходы к конфигурированию системы. В этом обзоре мы рассмотрим подготовку Linux, для использования в качестве узла плоскости управления Kubernetes.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 1

Как создавать Kubernetes секреты из Vault, используя external-secrets-operator

Время на прочтение 6 мин
Количество просмотров 7.6K

Бывают случаи, когда инженеры хранят секретные данные, ключи, токены в открытом виде или в переменных Gitlab. В Kubernetes для хранения данных, которые нежелательно показывать широкому кругу лиц, предусмотрены секреты.

В этой статье предлагаю рассмотреть безопасный способ передавать, синхронизировать, интегрировать секреты напрямую из Vault в Kubernetes – с помощью метода аутентификации AppRole, используя external-secrets-operator.

Читать далее
Всего голосов 18: ↑16 и ↓2 +14
Комментарии 13

7 решений для установки и управления WireGuard на своём сервере

Уровень сложности Средний
Время на прочтение 17 мин
Количество просмотров 77K

Предполагается, что для настройки WireGuard сервера, нужно вручную сгенерировать ключи, выбрать подсеть и задать ещё несколько параметров. Потом для каждого клиента также генерировать ключи, присваивать IP адрес и компоновать это всё в конфиг, чтобы было удобно импортировать на клиенте.

Но если клиентов много и нужно время от времени их добавлять и удалять, то становится сложнее за ними уследить. Да и каждый раз генерировать вручную ключи и выбирать IP не очень удобно.

Задачу автоматизации этих действий можно решить с помощью специальных программ. Каждое представленное тут решение я поднимал у себя на виртуальном сервере, попробовал в действии и написал краткий обзор с их возможностями, минусами и подводными камнями.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 25

Как настроить мониторинг и оповещения на Nginx ingress в Kubernetes

Время на прочтение 8 мин
Количество просмотров 11K


Команда VK Cloud перевела пошаговую инструкцию о том, как установить и сконфигурировать ingress-nginx, Prometheus и Grafana, а также настроить оповещения для ключевых метрик Ingress. Для работы понадобится кластер Kubernetes и Helm v3.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 3

Запускаем Kubernetes Ingress-контроллер c публичным ip на домашнем ноутбуке

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 9.2K

Работа с Ingress-контроллерами обычно предполагает работу с Kubernetes в облаке, где внешние ip присваиваются автоматически. Я изучаю Kubernetes, обходясь обычным ноутбуком за NAT, на котором в виртуальных машинах запущены разные разновидности Kubernetes. Когда я разбирался с Ingress-контроллером, у меня возникло непреодолимое желание завести в него публичный ip и обратиться к нему извне. Давайте посмотрим, как это можно сделать.

Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 12

Надеть Telegram на OpenVPN и завернуть это в Docker

Время на прочтение 8 мин
Количество просмотров 16K

Мигрируя в этом году свою инфраструктуру в новый датацентр, поймал себя на мысли о том, что возраст моей виртуальной частной сети (VPN) для доступа к серверам и устройствам перевалил за 10 лет.

Мой старый товарищ OpenVPN ни разу не подвел меня.

Подумав обо всех неудобствах и издержках я решил улучшить имеющийся механизм управления всем VPN-хозяйством.

Под катом вы найдете детали того, что получилось. Кратко, результат следующий: композиция из двух docker-контейнеров, которые превращаются в telegram-бота для управления VPN сервисом. И для этого нужно выполнить всего две команды в консоле.

Механизм управления VPN сервисом теперь не требует каких-либо навыков системного администрирования или доступа к Linux-консоли при выполнении рутинных операций. Например, чтобы сделать сертификаты новому пользователю вам достаточно иметь телефон с telegram-клиентом.

Для тех же, кому интересны технические детали реализации (помимо готового кода), в статье есть описание подходов, которые упрощают сопряжение систем в нескольких контейнерах. Раньше я "ходил более сложными тропами"...

Полезного чтения
Всего голосов 24: ↑22 и ↓2 +20
Комментарии 2

Настройка AWS SSO с AWS Client VPN

Время на прочтение 7 мин
Количество просмотров 4.8K

В этом туториале я описываю простую и безопасную настройку мультиаккаунтной инфраструктуры основанной на AWS, включая SSO и решение для VPN от Amazon.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 4

Ansible FAQ

Время на прочтение 6 мин
Количество просмотров 17K

Давайте разберем самые Часто Задаваемые Вопросы, или сокращенно FAQ. Они помогут вам глубже понять тонкости и принцип работы с Ansible. На ранних этапах можете использовать эту статью как некую шпаргалку.

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 9

Потеря логов при отправке через Fluent Bit

Время на прочтение 9 мин
Количество просмотров 6.3K

Дано

кластер k8s

много приложений, которые пишут свои логи в stdout/stderr, а контейнерный движок (в данном случае docker) складывает их в файлы

fluent-bit, запущенный на каждой ноде k8s. Он собирает логи, фильтрует их и отправляет в Loki

loki - хранилище логов от Grafana Labs

В чём заключается проблема

При просмотре логов через Grafana (источник - Loki) видно, что логи приходят с сильной задержкой или часть логов вообще отсутствует. При просмотре через kubectl logs все логи на месте.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 5

Рабочий пример использования ArgoCD

Время на прочтение 5 мин
Количество просмотров 11K

В Сети довольно мало хороших рабочих примеров, на которые можно опираться и строить собственные решения. Данная статья основана на статье из блоги компании Nortal, и предназначена для небольших проектов и команд, т.к основной акцент сделан на Application.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Рецепты Nginx: авторизация через auth0

Время на прочтение 3 мин
Количество просмотров 8K

Для приготовления авторизации через auth0 нам понадобится сам nginx и его плагины encrypted-session, headers-more, auth_request, set-misc, echo, json, evaluate и jwt. Можно также воспользоваться готовым образом.

Для начала
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 3

Создаем Конечный Автомат на PHP

Время на прочтение 6 мин
Количество просмотров 12K

Конечный Автомат (State Machine), также называемый Automata (да, как и игра), - это концепция для разработки, организации рабочих и технологических процессов с учетом текущего «состояния» какой-то задачи, изменения её состояний и, по возможности, для автоматизации процесса.

Я объясню на примере. Предположим, что я хочу купить молоко, тогда в такая задача будет иметь примерно следующие состояния...

Читать далее
Всего голосов 17: ↑13 и ↓4 +9
Комментарии 11

Настраиваем отказоустойчивость Pi-Hole в связке с Mikrotik

Время на прочтение 6 мин
Количество просмотров 38K

В прошлой статье мы внедрили домашний сервер DoH с использованием Pi-Hole, чем не только пофильтровали большое количество рекламы, но и инкапсулировали наши DNS-запросы в HTTPS, что вывело их из поля фильтрации запросов оператором связи.

Всем замечательно это решение, но у него есть один нюанс. Если вдруг у нас закончились деньги на счету у оператора связи или по каким-то другим причинам пропал канал связи до внешнего мира, мы даже не сможем пополнить счет, чтобы восстановить сервис, потому что не будет работать DNS. Или, например, если наш Pi-Hole по каким-то причинам перестал работать - вот вроде и вся сеть работает, и гугл пингуется, а пока не пропишешь другой DNS-сервер - не будет счастья. А если вы еще в этот момент заняты чем-то другим и не можете приступить к восстановлению незамедлительно - домашние негодуют, портят радостное существование своими жалобами и даже котики, чуя общую нервозность, стремятся нагадить вам в тапки.

Огорчать котиков - дело последнее, поэтому в этой статье я опишу, как вы можете внедрить автоматическое переключение с использования Pi-Hole на использование операторских (как, впрочем, и любых других) DNS при проблемах на Pi-Hole.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 19

Кунг-фу стиля Linux: бесплатный VPN по SSH

Время на прочтение 7 мин
Количество просмотров 34K
Если вы видите на некоторых сайтах множество рекламных баннеров, то вы знаете, что, если не будете пользоваться VPN (Virtual Private Network, виртуальной частной сетью), хакеры очень скоро захватят и разорят ваш компьютер и сожгут ваше жилище. Ну, они, по крайней мере, точно что-то такое задумывают. На самом же деле существует две основных причины, по которым кому-то может понадобиться VPN-подключение. Можно, конечно, купить подписку на соответствующий сервис, но если у вас есть SSH-доступ к какому-нибудь компьютеру, имеющему выход в интернет, это значит, что вы можете создать собственный VPN-сервис, не потратив на это ни копейки.

Основная идея тут заключается в том, чтобы подключиться к удалённому компьютеру, находящемуся в некоей сети, и сделать так, чтобы весь ваш сетевой трафик выглядел бы для той сети как локальный.



Первая причина, по которой это может кому-то понадобиться, заключается в повышении уровня безопасности и в заблаговременном устранении возможных угроз. Например, может понадобиться печатать на сетевом принтере, не «выставляя» этот принтер в обычный интернет. В результате, например, некто может сидеть в кафе и, подключившись к сети по VPN, распечатывать документы на принтере, чувствуя себя так, будто он находится за своим рабочим столом, а принтер стоит в паре метров от него. Использование VPN, кроме того, будет означать, что данные, передаваемые по WiFi-сети кафе, будут зашифрованы.

Вторая причина — это скрытие реального местоположения пользователя от любопытных глаз. Предположим, кому-то нравится смотреть видеоматериалы BBC, но живёт он в Эквадоре. Это значит, что для того чтобы видео не были бы для него заблокированы, ему нужно будет подключиться по VPN к сети, находящейся в Великобритании. Если власти некоей страны мониторят и цензурируют интернет, то жителям этой страны тоже может пригодиться возможность замаскировать свой трафик.
Читать дальше →
Всего голосов 45: ↑38 и ↓7 +31
Комментарии 9

Инъекция секретов из Vault в поды используя сайдкары Kubernetes

Время на прочтение 8 мин
Количество просмотров 26K

Мы рады объявить о новой интеграции Kubernetes, которая позволяет приложениям без встроенной в HashiCorp Vault нативной логики использовать статические и динамические секреты, получаемые из Vault. Она основана на новом инструменте под названием vault-k8s, который использует Kubernetes Mutating Admission Webhook для перехвата и дополнения специально аннотированной конфигурации подов для инъекции секретов с помощью Init и Sidecar контейнеров.

Приложениям нужно заботиться только о получении секрета по определённому пути в файловой системе, а не об управлении токенами, подключении к внешнему API или другим механизмам прямого взаимодействия с Vault.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 8

Лучшие практики для деплоя высокодоступных приложений в Kubernetes. Часть 1

Время на прочтение 13 мин
Количество просмотров 26K

Развернуть в Kubernetes приложение в минимально рабочей конфигурации нетрудно. Но когда вы захотите обеспечить своему приложению максимальную доступность и надежность в работе, вы неизбежно столкнётесь с немалым количеством подводных камней. В этот статье мы попытались систематизировать и ёмко описать самые важные правила для развертывания высокодоступных приложений в Kubernetes.

Функциональность, которая не доступна в Kubernetes «из коробки», здесь почти не будет затрагиваться. Также мы не будем привязываться к конкретным CD-решениям и опустим вопросы шаблонизации/генерации Kubernetes-манифестов. Рассмотрены только общие правила, касающиеся того, как Kubernetes-манифесты могут выглядеть в конечном итоге при деплое в кластер.

Читать далее
Всего голосов 68: ↑67 и ↓1 +66
Комментарии 19

Информация

В рейтинге
Не участвует
Откуда
Эстония
Дата рождения
Зарегистрирован
Активность