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

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

Istio: причина и решения ошибки «SQLSTATE Connection refused»

22 апреля 2021
 

 Во время старта подов возникает ошибка «SQLSTATE[HY000] [2002] Connection refused’«, при чём в двух разных приложения — на РНР и на NodeJS. В РHР/Yii она возникает во время выполения pre-install hook в деплое Helm и выполнении MySQL Migration Job: Yii Migration Tool (based on Yii v2.0.38)Exception ‘yii\db\Exception’ with message ‘SQLSTATE[HY000] [2002] Connection refused’in /app/vendor/yiisoft/yii2/db/Connection.php:642Error Info:… Читать далее »

Kubernetes: NodeLocal DNS и ошибка «lookup istiod.istio-system.svc on lookup: no such host»

19 апреля 2021
 

 У нас в Deployments используется кастомный NodeLocal DNS в роли локального кеширующего DNS-сервера, что бы уменьшить количество запросов к AWS VPC DNS, см. Kubernetes: нагрузочное тестирование и high-load тюнинг — проблемы и решения. Выглядит манифест деплоймента так: … dnsPolicy: «None» dnsConfig: nameservers: — 169.254.20.10 … Проблема в том, что при запуске Istio sidecar, а именно… Читать далее »

Istio: общий Ingress/AWS ALB, Helm-чарт с условиями, Istio и ExternalDNS

14 апреля 2021
 

 Продолжаем баловаться с Istio. Предыдущие части: Istio: обзор и запуск service mesh в Kubernetes Istio: интеграция Ingress Gateway с AWS Application LoadBalancer Кроме Istio, мы будем настраивать ExternalDNS, см. Kubernetes: обновление DNS в Route53 при создании Ingress. Всё описанное ниже пока в статусе Proof of Concept, и деплоится на единый Dev-кластер AWS Elastic Kubernetes Service.… Читать далее »

Istio: установка с Ansible и Helm

1 апреля 2021
 

 В первом посте серии — Istio: обзор и запуск service mesh в Kubernetes — мы деплоили Istio с помощью istioctl. Теперь, используем Ansible и Helm, что бы запустить Istio и настроить его сервисы. Не нашёл Хельм-репозитория с чартом, судя по всему его и нет, хотя обсуждения есть, см. Proposal: Publish Helm chart to a chart repository.… Читать далее »

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. В этом посте рассмотрим что… Читать далее »

Kubernetes: что такое Endpoints

13 марта 2021
 

 Практически все знают, что такое Kubernetes Service, но не все могут быть в курсе, что такое Endpoint, так как обычно он работает «за кулисами», и мы его не видим, аналогично тому, как мы пользуемся Deployment, но редко видим ReplicaSet-ы. Kubernetes Service Итак, Service — это абстракция Kubernetes, которая, используя labels, выбирает поды, на которые следует… Читать далее »

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