Архив рубрики: Uncategorized

AWS Elastic Kubernetes Service: запуск ALB Ingress controller

26 марта 2020
 

 AWS ALB Ingress Controller for Kubernetes — контроллер Kubernetes, который управляет соданием Application Load Balancer (ALB) при создании в кластере ресурса типа Ingress с аннотацией вида kubernetes.io/ingress.class: alb. Ingress-ресурс в свою очередь определяет настройки ALB для роутинга HTTP или HTTPS трафика к различным подам кластера. Документация: https://kubernetes.io/docs/concepts/services-networking/ingress/ https://github.com/kubernetes-sigs/aws-alb-ingress-controller https://aws.amazon.com/ru/blogs/opensource/kubernetes-ingress-aws-alb-ingress-controller/ Ingress controller types AWS ALB Ingress… Читать далее »

Kubernetes: ConfigMap и Secrets — auto-reload данных в подах

11 февраля 2020
 

 Имеется ConfigMap для Gorush сервиса (см. Kubernetes: запуск push-сервера Gorush в EKS за AWS LoadBalancer). Проблема заключается в том, что при изменении данных в ConfigMap или Secrets — они не будут сразу отображены в подах и их контейнерах. Есть несколько костылей типа монтирования в виде volume, а потом ремаунтить разделы, или каждый раз создавать новый… Читать далее »

Jenkins: JNLP-slave из Docker-образа

21 января 2019
 

 Имеется у нас зоопарк билд-агентов (macOS, Ubuntu), работающих в офисе. Сам Jenkins при этом запущен в AWS, на ЕС2, и обращается к агентам через проброс SSH-портов на офисном роутере. Задача — перенастроить схему, что бы агенты сами обращались к Jenkins, и, таким образом, отказаться от пробоса портов. Сесурити и вот это вот всё. Простой пример… Читать далее »

AWS: s3fs — Permission denied

22 ноября 2018
 

 После начала использования s3fs — выяснилась одна деталь. Файлы загружаются с помощью boto3. Но после того, как корзина смонтирована к системе — получить доступ к файлам нельзя: Проверяем права на файлы — и ой: И сменить права через chmod тоже не получится: Решение — задавать права доступа через Metadata, при загрузке данных в корзину. См.… Читать далее »

DigitalOcean: знакомство — Droplet, Floating IP, Firewall

4 ноября 2018
 

 За октябрь месяц от Амазона мне пришёл счёт в 71 USD, что уже начало несколько утомлять. Впрочем — я не слишком следил за расходами, и сумма, как для AWS, вполне оправдана. Например — у меня в S3 накопилось 370 ГБ бекапов, потому что было лень настроить S3 Lifecycle. Трафика за месяц ушло 1.5ТБ — потому… Читать далее »

Prometheus: OpsGenie и Alertmanager — уведомления в почту/SMS/телефон

9 августа 2018
 

 OpsGenie — сервис, позволяющий настроить отправку уведомлений на почту, в Slack, SMS и умеющий выполнять звонки при возникновении алерта. Кроме того — у него есть мобильные приложения для Android и iOS. Сейчас у нас нотификации отправляются только в Slack, через slack_configs Alertmanager-а, но этого явно мало, особенно если ночью упадёт какой-то критичный сервис. Собственно, задачей… Читать далее »

Azure: подключение volume — ARM, Ansible и данные Prometheus

12 октября 2017
 

 Задача — добавить подключение data-диска к виртуальной машине во время развёртывания Azure Resource Group с виртуальной машиной, смонтировать диск к файловой системе и запустить Prometheus с использованием этого диска для хранения данных. Azure data disk Диск уже есть. Используем Azure CLI v2 из Docker образа:

C: связанные списки

28 августа 2017
 

 Связанные списки являются второй по частоте использования структурой данных после массивов. Они являются достаточно простой реализацией динамических структур данных, использующие указатели (pointers) для реализации. Понимание работы указателей является необходимым условием для того, что бы понять связанные списки. Кроме того — требуется понимание динамического выделения памяти и знать, что такое структуры и как ими пользоваться. Ниже… Читать далее »

AWS: Elastic IP — The maximum number of addresses has been reached.

24 августа 2016
 

 Сразу после запуска создания стека с использованием шаблона из поста AWS: CloudFormation – создание шаблона для VPC, EC2, NAT и Internet Gateway — он падает с ошибкой: «The maximum number of addresses has been reached.» Проверяем лог: $ aws cloudformation describe-stack-events —stack-name WithInclude —query ‘[StackEvents[*].{Status:ResourceStatus,ResourceType:ResourceType,Result:ResourceStatusReason}]’ | grep -A 2 FAIL «Status»: «CREATE_FAILED», «ResourceType»: «AWS::CloudFormation::Stack», «Result»: «The following… Читать далее »