eksdemo: Інструмент для створення та управління кластером EKS

pic

Архітектура EKS

Що таке інструмент eksdemo?

Інструмент eksdemo — це утиліта командного рядка, розроблена для спрощення та оптимізації процесу створення, управління та тестування кластерів Amazon Elastic Kubernetes Service (EKS). Вона використовується в основному для демонстрації та тестування робочих навантажень Kubernetes на EKS і надає швидший і зручніший спосіб взаємодії з Kubernetes у екосистемі AWS.

Основні можливості eksdemo

  1. Швидке розгортання кластера EKS:
  • Автоматизує створення кластерів EKS з мінімальними налаштуваннями.
  • Зменшує складність налаштування повноцінного середовища EKS.

2. Попередньо налаштовані робочі навантаження:

  • Дозволяє користувачам швидко розгорнути приклади робочих навантажень або додатків для тестування.
  • Сприяє демонстраціям або експериментам з функціями Kubernetes.

3. Спрощене управління:

  • Надає команди для керування кластерами EKS (створення, видалення, оновлення тощо).
  • Інтегрується з сервісами AWS та ресурсами, необхідними для Kubernetes (наприклад, IAM ролі, VPC, групи вузлів).

4. Підтримка Helm і додатків:

  • Має вбудовану підтримку Helm-чартів та популярних додатків Kubernetes (наприклад, metrics-server, cert-manager).

5. Інструмент для навчання та демонстрацій:

  • Ідеально підходить для вивчення концепцій Kubernetes в AWS.
  • Чудово підходить для демонстрації функцій EKS командам або на семінарах.

6. Легкий у використанні CLI:

  • Орієнтований на легкість використання для початківців і розробників, які потребують простого способу взаємодії з кластерами EKS.

Сценарії використання:

  • Швидке створення кластера Kubernetes в AWS для розробки або тестування.
  • Демонстрація функцій Kubernetes командам, клієнтам або на семінарах.
  • Експерименти з робочими навантаженнями і налаштуваннями Kubernetes.
  • Спрощення управління EKS для маломасштабних проєктів або індивідуальних користувачів.

Приклад використання eksdemo:

  • Одна з найкращих функцій eksdemo — це те, що він легко керує залежностями для додатків.
  • Розглянемо приклад. Припустимо, ми вже створили кластер EKS за допомогою eksctl або іншого способу. І тепер ми хочемо встановити додаток karpenter на кластер EKS. Традиційний спосіб — вручну встановити додаток karpenter на кластер EKS, виконуючи кілька команд, і управляти залежностями самостійно, наприклад, створюючи IAM ролі, політики, підмережі тощо. Але за допомогою інструмента eksdemo ми можемо встановити додаток karpenter на наш кластер EKS за допомогою однієї команди. Він автоматично керуватиме залежностями для додатку karpenter.
  • Припустимо, ми хочемо встановити додаток karpenter на наш кластер EKS, ми можемо зробити це за допомогою однієї команди, як нижче:
eksdemo install autoscaling-karpenter -c 
  • Вищезгадана команда автоматично встановить karpenter на кластер. Вона також автоматично керуватиме залежностями для додатку karpenter.

Примітка: eksdemo все ще знаходиться в бета-версії. Не використовуйте його в продуктивному середовищі. Однак це дуже потужний інструмент для середовищ розробки та тестування, оскільки він може швидко та ефективно створювати кластери.

Тепер давайте подивимося, як ми можемо встановити та використовувати інструмент eksdemo.

Попередні вимоги

  • Обліковий запис AWS з необхідними дозволами для створення кластерів EKS.
  • Машина з встановленими AWS CLI, eksctl і kubectl.

Якщо ці інструменти ще не встановлені на вашій машині, ви можете слідувати посиланням нижче, щоб їх встановити:

Методи встановлення

1.
Використання Homebrew (macOS та Linux)

brew tap aws/tap  
brew install eksdemo

Примітка: Якщо ви стикаєтеся з помилкою, що eksctl вже встановлений з homebrew/core, виконайте:

brew uninstall eksctl  
brew install eksdemo
  • Це забезпечує сумісність, оскільки eksdemo використовує офіційний репозиторій Weaveworks для eksctl.

2. На AWS CloudShell

AWS CloudShell надає попередньо налаштоване середовище для інструментів AWS CLI. Щоб встановити eksdemo

# Встановлення eksctl  
curl -s -L "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_Linux_amd64.tar.gz" | tar xz -C /tmp  

# Встановлення eksdemo  
curl -s -L "https://github.com/awslabs/eksdemo/releases/latest/download/eksdemo_Linux_x86_64.tar.gz" | tar xz -C /tmp  

# Перемістіть бінарники до директорії в вашому PATH  
mkdir -p ~/.local/bin && mv /tmp/eksctl ~/.local/bin && mv /tmp/eksdemo ~/.local/bin  

# Переконайтесь, що бінарники виконувані  
chmod +x ~/.local/bin/eksctl ~/.local/bin/eksdemo

Щоб налаштувати автодоповнення для eksdemo в Bash

# Встановлення пакету bash-completion  
sudo dnf install bash-completion -y  

# Налаштування автодоповнення для bash  
mkdir -p ~/.bashrc.d  
cp /usr/share/bash-completion/bash_completion ~/.bashrc.d/  
echo '. <(eksdemo completion bash)' >> ~/.bashrc  
source ~/.bashrc

3. На AWS Cloud9

Для середовищ AWS Cloud9:

  1. Встановлення Homebrew:
CI=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"  
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> ~/.bashrc  
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

2. Встановлення eksdemo

brew install aws/tap/eksdemo

Щоб налаштувати автодоповнення для Bash:

cat >> ~/.bashrc << \EOF  
if type brew &>/dev/null; then  
 for COMPLETION in "$(brew --prefix)/etc/bash_completion.d/"*; do  
 [[-r "${COMPLETION}"]] && source "${COMPLETION}"  
 done  
fi  
EOF

Після додавання цих рядків, почніть нову сесію терміналу, щоб застосувати зміни.

GitHub

4. Ручне встановлення (Windows та інші системи)

Для ручного встановлення:

  1. Завантаження бінарного файлу:
  • Перейдіть на сторінку Releases репозиторію eksdemo на GitHub.
  • У розділі «Assets» знайдіть бінарник, що відповідає вашій операційній системі та архітектурі.
  • Завантажте та розпакуйте бінарник.

2. Переміщення бінарного файлу до вашого PATH:

  • Перемістіть розпакований бінарник eksdemo до директорії, яка входить до вашого системного PATH.
  • Переконайтесь, що бінарник має права на виконання.

Примітка: Для правильної роботи eksdemo необхідний інструмент eksctl. Переконайтесь, що eksctl встановлений і доступний у вашому PATH.

Тепер ви можете перевірити встановлення, виконавши команду:

eksdemo version

Проведення розгортання кластера EKS

  • Тепер, коли ми встановили інструмент eksdemo, давайте подивимося, як ми можемо провести розгортання кластера EKS за допомогою цього інструменту.
  • Виконайте команду нижче для створення кластера EKS:
eksdemo create cluster -c 
  • Вищезгадана команда створить кластер EKS з налаштуваннями за замовчуванням. Також варто зазначити, що, як я вже згадував, eksdemo побудований на основі eksctl. Тому за лаштунками він використовуватиме eksctl для створення кластера EKS.
  • Ви можете перевірити створення кластера EKS, виконавши команду нижче:
eksdemo get cluster
  • Ця команда виведе деталі кластера EKS у зручному для користувача таблиці.
  • Ви також можете дослідити деталі кластера EKS та ресурси, що були розгорнуті для цього кластера, через AWS Console.

Встановлення Karpeneter

  • Як я вже казав, ви можете встановлювати додатки на кластер EKS за допомогою однієї команди, використовуючи інструмент eksdemo. Давайте подивимося, як ми можемо встановити додаток karpenter на кластер EKS. Я зараз буду встановлювати додаток karpenter на мій кластер EKS.
    Ви також можете виконати команду нижче для встановлення додатку karpenter:
eksdemo install autoscaling-karpenter -c 
  • Вищезгадана команда встановить додаток karpenter на кластер EKS.
  • Ви можете перевірити встановлення, виконавши команду нижче:
kubectl get pods -n karpenter

Примітка: eksdemo використовує helm чарт для встановлення додатків на кластер EKS. Вам не потрібно мати встановлений helm на вашій машині. eksdemo самостійно подбає про це.

Команди типу kubectl для пошуку та запитів до ресурсів AWS з зручним виводом

  • Ми можемо легко шукати та запитувати ресурси AWS, використовуючи команди типу kubectl. Давайте подивимося, як можна шукати та запитувати ресурси AWS за допомогою команд типу kubectl.
  • Наприклад, якщо ми хочемо дізнатися деталі ресурсів AWS, таких як ролі IAM, стеки CloudFormation, екземпляри EC2, пов’язані з нашим кластером EKS, ми можемо це зробити, виконавши такі команди:
eksdemo get ec2-instance -c   
eksdemo get iam-role -c   
eksdemo get cloudformation-stack -c 
  • Ви побачите деталі ресурсів AWS у зручному для користувача таблиці. Це дуже легко для розуміння.

Читайте більше про інструмент eksdemo в офіційній документації

Висновок

Інструмент eksdemo — це потужний CLI-утиліта, розроблений для спрощення управління кластерами EKS, що робить його ідеальним для тестування, навчання та демонстрації робочих навантажень Kubernetes на AWS.

Слідкуйте за мною на LinkedIn

Слідкуйте за новими історіями, як ця 😁

Перекладено з: eksdemo: Tool for provisioning & managing the EKS Cluster

Leave a Reply

Your email address will not be published. Required fields are marked *