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

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

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: Которые потом доступны в неймспейсе ArgoCD в виде обычных Kubernetes-ресурсов: Удобен этот подход тем, что при создании нового… Читать далее »

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

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 — первым делом пошёл проверять его логи: request failed — «401 Unauthorized», response: «Unauthorized» — ага. И kubectl top node… Читать далее »

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

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