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

Kubernetes is an open-source container orchestration system for automating application deployment, scaling, and management.

Kubernetes: Helm – “x509: certificate signed by unknown authority” и ServiceAccount для Pod

28 сентября 2021

Имеются у нас Github runners, которые запущены в виде подов в Kubernetes-кластере, см. Github: обзор Github Actions и деплой с ArgoCD. На них выполняеттся сборка docker-образов и их пуш в Docker Hub, а затем деплой приложения с Helm или ArgoCD. При первом запуске helm install в поде получаем ошибку “x509: certificate signed by unknown authority“:… Читать далее »

Prometheus: prometheus_replica и дублирование метрик

4 августа 2021

После запуска Prometheus в виде трёх подов, см. Prometheus: ошибки «federation failed: broken pipe» и «Received SIGTERM, exiting gracefully» — постоянные рестарты – метрики начали дублироваться: Одна метрика получена от инстанса prometheus_replica=”prometheus-prometheus-prometheus-oper-prometheus-1″, вторая – от prometheus_replica=”prometheus-prometheus-prometheus-oper-prometheus-2″, так как запущено три пода: [simterm] $ kubectl -n monitoring get pod | grep oper-prometheus prometheus-prometheus-prometheus-oper-prometheus-0 3/3 Running 1… Читать далее »

AWS: обзор и настройка Web Application Firewall и его мониторинга

16 июля 2021

AWS WAF (Web Application Firewall) – сервис Amazon, выполняющий мониторинг HTTP(S) трафика, проверяя запросы, которые приходят к защищаемому приложению. Может быть подключен к AWS Application LoadBalancer, AWS CloudFront дистрибьюции, Amazon API Gateway и AWS AppSync GraphQL API. В случае обнаружения запросов, попадающих под список правил блокировки и/или IP-адреса из списка запрещённых или имеющих плохую репутацию… Читать далее »

AWS: миграция AWS ALB Ingress Controller (v1) на AWS Load Balancer Controller (v2)

13 июля 2021

Мы пользуемся AWS ALB Ingress Controller для создания AWS Application LoadBalancer (ALB) при создании Ingress в Kubernetes. Последняя доступная версия – v2.2.1, тогда как у нас версия 1.14. См. changelog версии 2.0 тут>>> и документацию по обновлению тут>>>. Из интересных обновлений: изменение имени: вместо AWS ALB Ingress Controller он теперь называется AWS LoadBalancer Controller поддержка… Читать далее »

Kubernetes: типы Deployment Strategies и Argo Rollouts

21 мая 2021

Одна из целей, которые мы преследуем внедряя ArgoCD в Kubernetes – использование новых Deployment Strategies для наших приложений. Ниже рассмотрим типы деплойментов в Kubernetes, как работают Deployment в Kubernetes, и быстрый пример использования Argo Rollouts, который более детально будем рассматривать в следущих постах. Deployment Strategies и Kubernetes Кратко рассмотрим стратегии деплоя, имеющиеся в Kubernetes. Сам… Читать далее »

ArgoCD: декларативные Projects, Applications и деплой ArgoCD из Jenkins

18 мая 2021

Создать новое приложение, кластер или репозиторий в ArgoCD можно как используя WebUI, так и описав его в виде Kubernetes-манифеста, который потом можно передать kubectl для создания ресурса. Например, приложения являются CustomResources и описаны в Kubernets CRD applications.argoproj.io: [simterm] $ kubectl get crd applications.argoproj.io NAME CREATED AT applications.argoproj.io 2020-11-27T15:55:29Z [/simterm] Которые потом доступны в неймспейсе ArgoCD… Читать далее »

ArgoCD: интеграция с Okta и группы пользователей

14 мая 2021

В предыдущем посте ArgoCD: пользователи, доступы и RBAC разобрались с пользователями и RBAC в целом, теперь настроим ArgoCD SSO. Идея заключается в том, что мы не заводим локальных пользователей в ArgoCD, а используем базу Okta, и она же выполняет их аутентификацию. На стороне же ArgoCD мы будем выполнять авторизацию, т.е. проверять уровни доступа. Плюс, используя… Читать далее »

ArgoCD: пользователи, доступы и RBAC

13 мая 2021

ArgoCD использует два типа пользователей – локальные, заданные в argocd-cm ConfigMap, и SSO. Ниже рассмотрим работу с локальными пользователями, а позже добавим SSO и группы, так как для локальных пользователей нельзя создавать группы, см. Local users/accounts. Разделение доступов выполняется с помощью ролей, которым подключаются политики, описывающие к чему есть доступ, и на какие операции. При… Читать далее »

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