EKS — Зашифровать текущий PV (EBS Volume)

За основу был взят ответ на gitmemory Для того, чтобы зашифровать уже созданный EBS Volume, нужно сделать из него снапшот. Затем из созданного снапшота создать диск в том же регионе, что и оригинальный, так же указать KMS ключ для шифрования. Затем сохраняем манифест текущего PV в файл:   Редактируем файл, заменив ID оригинального диска на … Продолжить читать "EKS — Зашифровать текущий PV (EBS Volume)"

Kubernetes — Одна роль для нескольких пространств имен

    Цель: Есть 2 пространства имен, это "kube-system" и "default". Нужно запускать крон задачу в пространстве "kube-system", которая будет очищать выполненные джобы и поды в пространстве "default". Для этого создадим сервис аккаунт в пространстве "kube-system", роль с необходимыми правами в пространстве "default", и для созданного аккаунта привязываем созданную роль. cross-namespace-role.yaml

AWS — Lambda: kubectl

Пример того, как можно создавать сущности в Kubernetes, используя AWS Lambda. Функция будет на Python3, так что воспользуемся Kubernetes Python Client Больше примеров по использованию можно найти тут. Так как AWS Lambda не поддерживает данный пакет, упакуем в нашу функцию модули "kubernetes" и "boto3". "boto3" понадобится для обращения в AWS SSM, где будет хранится kubeconfig … Продолжить читать "AWS — Lambda: kubectl"

Jenkins — Kubeconfig

  Для хранения и переключения между конфигурациями Kubernetes'а, можно воспользоваться плагином Kubernetes CLI, для работы с ним в системе должен быть установлен "kubectl" Устанавливаем плагин Переходим в настройки Jenkins'а   Раздел "Управление плагинами"   Переходим к вкладке "Доступные" и в поиске указываем "Kubernetes CLI" Устанавливаем его.   Добавляем Kubernetes config   Переходим в "Credentials" и … Продолжить читать "Jenkins — Kubeconfig"

EKS — RollingUpdate с запуском pod’а на том же инстансе

Необходимо выполнить обновление пода без даунтайма, но у пода есть volume, который является EBS, и может быть приатачен одновременно только к одному из EC2 инстансов. Поэтому необходимо, чтобы под был запущен на той же ноде, для этого можно воспользоваться "podAffinity" deployment.yaml

Kubernetes — Dashboard через service по HTTPS (AWS EKS)

Задача: Получить доступ к Kubernetes Dashboard по доменному имени, а не используя "kubectl proxy". Так же подключение должно осуществляться по HTTPS, но при этом вести на внутренний локальный адрес, доступный только через VPN, и не используя для этого никаких Ingress'ов.   Редактируем деплоймент "kubernetes-dashboard":   Приводим аргументы к следующему виду:   А так же для … Продолжить читать "Kubernetes — Dashboard через service по HTTPS (AWS EKS)"

Kubernetes — NFS provisioner

  Установим NFS provisioner в Kubernetes кластер, для существующего NFS сервера   Дано: 192.168.1.1 — IP адрес NFS сервера /var/lib/nfs — путь NFS директории на сервере   Устанавливаем используя HELM:   Опцией "fullnameOverride" перезапишем полное имя чарта, так как он после имени все равно добавит "nfs-client-provisioner"   Делаем NFS типом хранилища по умолчанию:   Теперь … Продолжить читать "Kubernetes — NFS provisioner"

Kubernetes — Horizontal pod autoscaler на основе кастомных метрик

Спасибо Daniel Vaughan за данную статью. Для горизонтального автоскалирования подов (HPA) на основе кастомных метрик, нам понадобятся: Prometheus Operator Prometheus Adapter Все это, мы будем устанавливать используя Helm. Установку Helm'а можно посмотреть тут.   Создадим директорию для хранения Helm values:   Создадим values файл для Prometheus Operator'а:   Устанавливаем Prometheus Operator: