За основу был взят ответ на gitmemory Для того, чтобы зашифровать уже созданный EBS Volume, нужно сделать из него снапшот. Затем из созданного снапшота создать диск в том же регионе, что и оригинальный, так же указать KMS ключ для шифрования. Затем сохраняем манифест текущего PV в файл: Редактируем файл, заменив ID оригинального диска на …
Продолжить читать "EKS — Зашифровать текущий PV (EBS Volume)"
Цель: Есть 2 пространства имен, это "kube-system" и "default". Нужно запускать крон задачу в пространстве "kube-system", которая будет очищать выполненные джобы и поды в пространстве "default". Для этого создадим сервис аккаунт в пространстве "kube-system", роль с необходимыми правами в пространстве "default", и для созданного аккаунта привязываем созданную роль. cross-namespace-role.yaml
Пример того, как можно создавать сущности в Kubernetes, используя AWS Lambda. Функция будет на Python3, так что воспользуемся Kubernetes Python Client Больше примеров по использованию можно найти тут. Так как AWS Lambda не поддерживает данный пакет, упакуем в нашу функцию модули "kubernetes" и "boto3". "boto3" понадобится для обращения в AWS SSM, где будет хранится kubeconfig …
Продолжить читать "AWS — Lambda: kubectl"
Для хранения и переключения между конфигурациями Kubernetes'а, можно воспользоваться плагином Kubernetes CLI, для работы с ним в системе должен быть установлен "kubectl" Устанавливаем плагин Переходим в настройки Jenkins'а Раздел "Управление плагинами" Переходим к вкладке "Доступные" и в поиске указываем "Kubernetes CLI" Устанавливаем его. Добавляем Kubernetes config Переходим в "Credentials" и …
Продолжить читать "Jenkins — Kubeconfig"
Необходимо выполнить обновление пода без даунтайма, но у пода есть volume, который является EBS, и может быть приатачен одновременно только к одному из EC2 инстансов. Поэтому необходимо, чтобы под был запущен на той же ноде, для этого можно воспользоваться "podAffinity" deployment.yaml
Создадим Secret с содержимым существующего JSON файла "app-config.json" и примонтируем внутрь пода как JSON файл. Создаем Secret: Монтируем Secret в Pod:
Задача: Получить доступ к Kubernetes Dashboard по доменному имени, а не используя "kubectl proxy". Так же подключение должно осуществляться по HTTPS, но при этом вести на внутренний локальный адрес, доступный только через VPN, и не используя для этого никаких Ingress'ов. Редактируем деплоймент "kubernetes-dashboard": Приводим аргументы к следующему виду: А так же для …
Продолжить читать "Kubernetes — Dashboard через service по HTTPS (AWS EKS)"
Установим NFS provisioner в Kubernetes кластер, для существующего NFS сервера Дано: 192.168.1.1 — IP адрес NFS сервера /var/lib/nfs — путь NFS директории на сервере Устанавливаем используя HELM: Опцией "fullnameOverride" перезапишем полное имя чарта, так как он после имени все равно добавит "nfs-client-provisioner" Делаем NFS типом хранилища по умолчанию: Теперь …
Продолжить читать "Kubernetes — NFS provisioner"
Пример сервиса, который ссылается на внешний адрес, в данном случае RDS.
Спасибо Daniel Vaughan за данную статью. Для горизонтального автоскалирования подов (HPA) на основе кастомных метрик, нам понадобятся: Prometheus Operator Prometheus Adapter Все это, мы будем устанавливать используя Helm. Установку Helm'а можно посмотреть тут. Создадим директорию для хранения Helm values: Создадим values файл для Prometheus Operator'а: Устанавливаем Prometheus Operator: