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

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

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:… Читать далее »

Redis: основные параметры конфигурации и тюнинг производительности

5 сентября 2019
 

 В процессе настройки Redis  в роли кеширующего сервиса для приложения — набросался такой вот пост. Рассмотрим основные параметры конфигурации Redis, их значения, как они и на что они влияют, и на какие из них стоит обратить внимание. Местами совсем кратко, но везде со ссылками. Начать, пожалуй, стоит с утилиты redis-benchmark. Устанавливается вместе с сами Redis,… Читать далее »

Docker: Compose и общие сети

20 августа 2019
 

 Имеется Docker Compose стек с Jenkins, SonarQube и PostgresSQL, см. пост SonarQube: запуск в Docker и вызов из Jenkins Pipeline. Проблема в том, что они описаны в одном Compose-файле, и весь стек перезапускается единым systemd-файлом (см. Linux: systemd сервис для Docker Compose). Соответственно, если надо перезапустить SonarQube — то придётся перезапускать и Jenkins, на котором… Читать далее »

Kubernetes: знакомство, часть 3 — обзор AWS EKS и ручное создание кластера

15 августа 2019
 

 Продолжаем знакомство с Kubernetes. Предыдущие части: Kubernetes: знакомство, часть 1 — архитектура и основные компоненты, обзор Kubernetes: знакомство, часть 2 — создание кластера с AWS cloud-provider и AWS LoadBalancer Следующие: Kubernetes: знакомство, часть 4 — аутентификация в AWS EKS, aws-iam-authenticator и AWS IAM В этой части перейдём уже непосредственно к EKS — кратко его рассмотрим,… Читать далее »

Kubernetes: знакомство, часть 2 — создание кластера с AWS cloud-provider и AWS LoadBalancer

10 августа 2019
 

 В первом посте — Kubernetes: знакомство, часть 1 — архитектура и основные компоненты, обзор — были рассмотрены основные компонены, теперь время применить их на практике. Продолжение — Kubernetes: знакомство, часть 3 — обзор AWS EKS и ручное создание кластера. Следующим, что очень хотелось потрогать — это интеграция Kubernetes с AWS и работа с сетью: создать веб-сервис,… Читать далее »