Архив рубрики: 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.

Kubernetes: ExternalDNS — records retrieval failed: failed to list hosted zones: Throttling: status code: 400

9 апреля 2021
 

 Имеется у нас ExternalDNS, см. Kubernetes: обновление DNS в Route53 при создании Ingress, который начал сыпать в лог сообщениями типа: msg=»failed to list resource records sets for zone /hostedzone/Z2VM3W5SRY4I9J: Throttling: \n\tstatus code: 400 И даже в AWS Console в Route53 начали появляться сообщения «Throttling error that was caused because API rate was exceeded. Try again… Читать далее »

Kubernetes: Cluster Autoscaler: failed to renew lease

2 апреля 2021
 

 Имеется в нашем Kubernetes Cluster Autoscaler для скейлинга AWS EC2 WorkerNode Groups. На Dev-кластере временами перестаёт работать скейлинг, а под с Cluster Autoscaler в логах пишет следующее: И постоянно уходит в ребуты: См. все доступные опции в What are the parameters to CA? У нас он работает в виде одного инстанса, поэтому отключим «выборы» —… Читать далее »

Istio: интеграция Ingress Gateway с AWS Application LoadBalancer

26 марта 2021
 

 В предыдущем посте — Istio: обзор и запуск service mesh в Kubernetes — запустили Istio в AWS Elastic Kubernetes Service, познакомились с основными компонентами. Следующая задача — добавить AWS Application Load Balancer (ALB) перед Istio Inrgress Gateway, так как Istio Gateway Service с типом LoadBalancer создаёт AWS Classic LoadBalancer, к которому можно подключить только один… Читать далее »

Istio: обзор и запуск service mesh в Kubernetes

24 марта 2021
 

 Istio- одна из реализацией концепии Service Mesh, позволяющая реализовать Service Discovery, Load Balancing, контроль над трафиком, canary rollouts и blue-green deployments, мониторить трафик между приложениями. Мы будем использовать Istio в AWS Elastic Kubernetes Service для мониторинга трафика, в роли API gateway, разграничения трафика и, возможно, для реализации различных deployment strategies. В этом посте рассмотрим что… Читать далее »

Opsgenie: интеграция с AWS RDS и алерты

15 марта 2021
 

 Настроим интеграцию Opsgenie с AWS RDS. Идея заключается в том, что бы отправлять в Opsgenie сообщения о события в RDS, а Opsgenie в свою очередь будет отправлять уведомления в Slack. Для этого нам потребуются AWS Simple Notification Service и AWS RDS Event subscriptions. Документация тут>>>. Настройка Opsgenie Тут всё просто — переходим в Integrations list,… Читать далее »

AWS: InvalidSignatureException: Signature not yet current и Kubernetes AWS ALB Ingress controller

4 марта 2021
 

 Одним прекрасным утром девелоперы пожаловались, что не создаются AWS LoadBalancer из Ingress нашего Dev-кластера Kubernetes (AWS EKS). Балансеры создаются через AWS ALB Controller, см. AWS Elastic Kubernetes Service: запуск ALB Ingress controller. Сама ошибка в лога контроллера выглядела так: E0304 07:12:38.595113       1 controller.go:217] kubebuilder/controller «msg»=»Reconciler error» «error»=»no object matching key \»test-namespace/test-ingress\» in local store»  «controller»=»alb-ingress-controller»… Читать далее »

Jenkins: запуск slaves в Kubernetes и билд Docker-образов

26 февраля 2021
 

 Имеется у нас Jenkins, который запускает в Docker-контейнерах свои задачи. Со временем столкнулись с тем, что инстанс t2.2xlarge (8 CPU, 32 RAM) при пиковых нагрузках уже не справляется — забиваются и память, и процессорное время. Варианты — либо продолжать вертикальный скейлинг одного мастер-инстанса, и на нём дальше в Docker запускать джобы — или вынести запуск… Читать далее »

Kubernetes: NGINX/PHP-FPM graceful shutdown — избавляемся от 502 ошибок

24 февраля 2021
 

 Имеется PHP-приложение, работает в Kubernetes в подах с двумя контейнерами — NGINX и PHP-FPM. Проблема: во время скейлинга приложения начинают проскакивать 502 ошибки. Т.е. при остановке подов — некорректно отрабатывает завершение подключений. Рассмотрим процесс остановки подов вообще, и особенности NGINX и PHP-FPM в частности. Тестировать будем приложение в AWS Elastic Kubernetes Service с помощью Yandex.Tank.… Читать далее »

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. Пришлось покостылить, но в результате всё заработало так, как и ожидалось.… Читать далее »