Архив рубрики: Amazon web services

Amazon Web Services is a subsidiary of Amazon that provides on-demand cloud computing platforms to individuals, companies and governments, on a paid subscription basis.

Ansible: модуль community.kubernetes и установка Helm-чарта с ExternalDNS

24 ноября 2020
 

 В посте Kubernetes: обновление DNS в Route53 при создании Ingress выполнили ручную установку ExternalDNS, и посмотрели, как он работает — пора добавить автоматизацию его установки на кластера. В роли Configuration Management Tool у нас используется Ansible, для которого существует модуль community.kubernetes — используем его. Вообще, есть много модулей для работы с Helm, например — helm… Читать далее »

ArgoCD: деплой Helm-чарта и работа с Helm Secrets через AWS KMS

21 ноября 2020
 

 В предыдущем посте ArgoCD: обзор, запуск, настройка SSL, деплой приложения потрогали ArgoCD, запустили тестовый инстанс, и задеплоили приложение из его готовых примеров. Но наша цель — деплоить наши Helm-чарты, а потому посмотрим, как это можно сделать. Самое интересное ожидаемо коснулось работы с Helm secrets. Пришлось покостылить, но в результате всё заработало так, как и ожидалось.… Читать далее »

ArgoCD: обзор, запуск, настройка SSL, деплой приложения

19 ноября 2020
 

 ArgoCD помогает деплоить приложения в Kubernetes, используя GitOps подход, т.е. когда приложения, конфиги, манифесты и тому подобные данных хранятся в Git-репозитории. Поддерживает работу с «голыми» манифестами Kubernetes, kustomize, ksonnet, jsonnet и то, чем пользуемся мы — Helm-шаблонами. ArgoCD запускает свой контроллер в Kubernetes-кластере, и отслеживает изменения в Git-репозиториях, синхронизируя приложения в кластере с их манифестами… Читать далее »

Kubernetes: обновление DNS в Route53 при создании Ingress

14 ноября 2020
 

 Задача: при создании Ingress ресурса — создавать запись на DNS, которая будет привязана к URL создаваемого Ingress, потому что сейчас это приходится делать руками для каждого нового Application Load Balancer, который создаётся из Ingress через ALB Ingress controller. Для решения — используем ExternalDNS, который будет ходить в наш AWS Route53, и добавлять записи. Документация на… Читать далее »

Kubernetes: Service, балансировка нагрузки, kube-proxy и iptables

30 октября 2020
 

 Задался я вопросом — а как вообще в Kubernetes происходит балансировка нагрузки между подами? Т.е, есть у нас внешний Load Balancer. За ним — Service. За ним — Pod. Что происходит, когда мы из мира получаем пакет, а у нас несколько подов — как пакеты между ними распределяются? kube-proxy За правила маршрутизации пакетов между Service… Читать далее »

AWS: Glue — ошибка AWS S3 connect timed out, и cross-region connections

22 октября 2020
 

 Есть AWS Glue job, которая должна загрузить данные в AWS S3 в другом регионе. Джоба падает с ошибкой: ERROR [Executor task launch worker for task 39] executor.Executor (Logging.scala:logError(91)): Exception in task 6.1 in stage 2.0 (TID 39) com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to projectname-dwh.s3.eu-west-1.amazonaws.com:443 [projectname-dwh.s3.eu-west-1.amazonaws.com/52.218.112.104] failed: connect timed out Причину искал долго, потому… Читать далее »

Kubernetes: AWS ALB Ingress Controller — добавление редиректа на другой домен

7 октября 2020
 

 Имеется приложение двух версий — старое и новое, и два домена — старый, и новый. Работает  в AWS Elastic Kubernetes Service, за AWS LoadBalancer, который создаётся из AWS ALB Ingress Controller. Задача — добавить редирект на LoadBalancer со старого домена на новый: старый: dev.api.old-example.com новый: dev.api.new-example.com В самом AWS LoadBalancer это делается через Listener Rules,… Читать далее »

AWS: Database Migration Service, часть 2 — нет AUTO_INCREMENT и индексов. Фиксы для «foreign key constraint fails» и логов CloudWatch

31 августа 2020
 

 Продолжение поста AWS: Database Migration Service — обзор и пример миграции self-hosted MariaDB в AWS Aurora RDS. И всё было хорошо, пока мы не запустили первые тесты, которые начали отваливаться с ошибками: [2020-08-28 17:13:02] local.ERROR: SQLSTATE[HY000]: General error: 1364 Field ‘id’ doesn’t have a default value Начинаем проверять таблицы, и видим, что поле ID потеряло… Читать далее »

AWS: Database Migration Service, часть 1 — обзор и пример миграции self-hosted MariaDB в AWS Aurora RDS

27 августа 2020
 

 В общем-то — продолжение эпопеи с миграцией приложения из Digital Ocean в Amazon Web Services. В посте Kubernetes: нагрузочное тестирование и high-load тюнинг — проблемы и решения мы тестировали работу самого приложения в Kubernetes, следующая задача — перенести базу данных. Сейчас база данных проекта находится в Digital Ocean, на обычном дроплете с Linux и MariaDB.… Читать далее »

Kubernetes: нагрузочное тестирование и high-load тюнинг — проблемы и решения

25 августа 2020
 

 Вообще, этот пост планировался в виде небольшой заметки о том, как использовать NodeAffinity для Kubernetes Pod: Но, как это часто бывает — за одним потянулось другое, за другим третье — и в результате вышел очередной длиннопост в свободном стиле. Итак, собирался я написать про NodeAffinity, как вдруг подумал — а как будет себя вести Kubernetes… Читать далее »