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

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

Kubernetes: менеджер плагинов Krew и полезные плагины для kubectl

1 октября 2021
 

 Одна из наиболее приятных возможностей kubectl – это его расширяемость за счёт плагинов. Конечно, есть Lens, который прям отлично заходит разработчикам, которые не очень любят консоль, или есть k9s, но плагины kubectl – отдельная тема. В этом посте установим Krew для управления плагинами, и рассмотрим несколько наиболее интересных, с моей личной точки зрения, плагинов. Krew… Читать далее »

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″, так как запущено три пода: И в Grafana потом неправильно рисуются графики – вместо одного получаем три: Для решения… Читать далее »

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: Которые потом доступны в неймспейсе 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`… Читать далее »