Архітектура EKS
Що таке інструмент eksdemo?
Інструмент eksdemo
— це утиліта командного рядка, розроблена для спрощення та оптимізації процесу створення, управління та тестування кластерів Amazon Elastic Kubernetes Service (EKS). Вона використовується в основному для демонстрації та тестування робочих навантажень Kubernetes на EKS і надає швидший і зручніший спосіб взаємодії з Kubernetes у екосистемі AWS.
Основні можливості eksdemo
- Швидке розгортання кластера 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:
- Встановлення 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
Після додавання цих рядків, почніть нову сесію терміналу, щоб застосувати зміни.
4. Ручне встановлення (Windows та інші системи)
Для ручного встановлення:
- Завантаження бінарного файлу:
- Перейдіть на сторінку 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