Архив за месяц: Апрель 2021

Kubernetes: spec.ports[0].nodePort: Forbidden: may not be used when `type` is ‘ClusterIP’

26 апреля 2021
 

 Во время деплоя приложения из Helm-чарта, описанного в посте Istio: общий Ingress/AWS ALB, Helm-чарт с условиями, Istio и ExternalDNS, возникает ошибка “spec.ports[0].nodePort: Forbidden: may not be used when `type` is ‘ClusterIP’“. Воспроизведём ошибку вручную, и рассмотрим способы обхода проблемы с помощью kubectl и при использовании Helm. Ошибка spec.ports[0].nodePort: Forbidden: may not be used when `type`… Читать далее »

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: metrics-server – 401 Unauthorized и kubelet stopped posting node status

21 апреля 2021
 

 На Dev-кластере Elastic Kubernetes Service несколько неймспейсов зависли при удалении – остаются в Terminating. “401 Unauthorized”, response: “Unauthorized” Помня похожий случай, где приичной стал metrics-server, см. Kubernetes: namespace висит в Terminating и неочевидности с metrics-server – первым делом пошёл проверять его логи: [simterm] $ kk -n kube-system logs -f metrics-server-5f956b6d5f-r7v8f … E0416 11:54:47.022378 1 manager.go:111]… Читать далее »

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

AWS: оптимизация расходов – покупка и анализ RDS Reserved Instances

16 апреля 2021
 

 Сейчас активно внедряю решения по уменьшению расходов на инфрастуктуру AWS, решил закинуть пару постов на эту тему. Первым будет тема AWS RDS Reserved Instances. Суть проста: вы обязуетесь использовать определённые инстансы один или три года. При этом есть возможность как оплатить их использование сразу на весь период – тогда скидка будет больше, либо частично, либо… Читать далее »

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

DevOpsDays Kyiv 2021

14 апреля 2021
 

  20–22 апреля присоединяйтесь к DevOpsDays Kyiv 2021 – бесплатной онлайн конференции о культуре и процессах, на которых строится работа инженеров. Вас ждут три вечера со спикерами из Google, VMWare, PagerDuty, Dojo and Co, Datadog, fireside чат с одним из создателей Kubernetes – Joe Beda, и не только. 💻 В программе: 5 докладов о культуре… Читать далее »

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

Prometheus: ошибки “federation failed: broken pipe” и “Received SIGTERM, exiting gracefully” – постоянные рестарты

7 апреля 2021
 

 Имеется Prometheus сервер, запущенный через Prometheus Operator в Kubernetes-кластере, см. Kubernetes: мониторинг кластера с Prometheus Operator. Prometheus сервера в каждом Kubernetes-кластере через Prometheus federation отправляют данные на центральный сервер. При больших нагрузках, например на нашем Kubernetes Dev кластере, где очень много подов, Prometheus начинает падать с ошибками: level=error ts=2021-03-31T07:31:18.765Z caller=federate.go:192 component=web msg=”federation failed” err=”write tcp… Читать далее »

Kubernetes: Cluster Autoscaler: failed to renew lease

2 апреля 2021
 

 Имеется в нашем Kubernetes Cluster Autoscaler для скейлинга AWS EC2 WorkerNode Groups. На Dev-кластере временами перестаёт работать скейлинг, а под с Cluster Autoscaler в логах пишет следующее: [simterm] … E0331 08:57:52.264549 1 leaderelection.go:320] error retrieving resource lock kube-system/cluster-autoscaler: Get https://172.20.0.1:443/apis/coordination.k8s.io/v1/namespaces/kube-system/leases/cluster-autoscaler: context deadline exceeded I0331 08:58:14.468096 1 leaderelection.go:277] failed to renew lease kube-system/cluster-autoscaler: timed out waiting… Читать далее »