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

Вопросы, касающиеся работы сетей, сетевых протоколов и оборудования.

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

24 ноября 2020
 

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

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: нагрузочное тестирование и high-load тюнинг — проблемы и решения

25 августа 2020
 

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

Kubernetes: 503 no endpoints available for service — причины и решения

15 июня 2020
 

 Имеется Redis, для которого создан Service типа ClusterIP. К этому Редису должны ходить поды этого неймспейса (Gorush).   Проблема в том, что поды с Gorush подключиться к Redis по адресу gorush-server-redis-svc:6379 не могут — отваливаются с ошибкой «Can’t connect redis server: connection refused«: Проверяем наличие сервиса: Ошибка «no endpoints available for service» Попробуем подключиться к… Читать далее »

Kubernetes: ClusterIP vs NodePort vs LoadBalancer, Services и Ingress — обзор, примеры

4 июня 2020
 

 Для сетевого взаимодействия Kubernetes предоставляет четыре типа Service-ресурсов — ClusterIP (дефолтный), NodePort, LoadBalancer и ExternalName, плюс ресурс Ingress. В этом посте разберём каждый из них, и попробуем их в работе. Документация по типам — Publishing Services (ServiceTypes). Рассматривается в основном AWS, потому учитываем, что сеть у нас — AWS VPC, балансировщики нагрузки — AWS ALB/CLB,… Читать далее »

HTTP: редиректы, POST и GET запросы, и «потерянные» данные

23 ноября 2019
 

 Имеется приложение, которое должно принимать данные через POST-запросы от клиентов. Перед этим приложением имеется некий прокси, не важно какой — AWS Application Load Balancer, NGINX или любой другой. Мы изначально столкнулись с проблемой на AWS ALB, потом я начал тестить на NGINX, что бы искючить влияение самого AWS-сервиса — воспроизводится везде, т.к. не зависит от… Читать далее »

dnsmasq: ошибки в AWS — «Temporary failure in name resolution», логи, дебаг и размер кеша

26 октября 2019
 

 При использовании AWS VPC DNS периодически сталкиваемся с ошибками вида «php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution«. Единственный совет от тех. поддержки AWS заключался в установке dnsmasq в роли кеширующего сервиса, но он уже давно установлен — а проблема раз в несколько месяцев проявляется снова. Хотя пост не о том, но из возможных причин… Читать далее »

OpenVPN: ошибки No route to host и ERR_ADDRESS_UNREACHABLE — причина и решение

14 октября 2019
 

 Имеется OpenVPN сервер. Его установка и настройка описаны в постах OpenVPN: настройка OpenVPN Access Server и AWS VPC peering: OpenVPN сервер расположен в одной AWS VPC, Bitwarden — в другой. Между этими VPC поднят VPC Peering, и OpenVPN должен роутить трафик между клиентом и Bitwarden. Проблема в том, что при доступе к Bitwarden (см. Bitwarden:… Читать далее »