Архив метки: Kubernetes

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: установка с 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: namespace висит в Terminating и неочевидности с metrics-server

23 марта 2021
 

 Столкнулся с весьма интересной проблемой при удалении Kubernetes Namespace. При попытке удалить неймспейс — он зависает в статусе Terminating, и никакие попытки его удалить не помогали. Рассмотрим варианты удаления, и докопаемся до причины. Создаём тестовый namespace: Пробуем его удалить — и удаление зависает: Проверяем — висит в Terminating: При этом в логах API-сервера никаких ошибок… Читать далее »

Kubernetes: что такое Endpoints

13 марта 2021
 

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

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