Покрокова інструкція з розгортання ігрового додатку на AWS EKS

EKS проти самостійно керованого Kubernetes: Переваги та недоліки

Переваги EKS (Amazon Elastic Kubernetes Service):

Керований контрольний план: EKS відповідає за управління компонентами контрольного плану Kubernetes, такими як API-сервер, керівник контролерів та etcd. AWS займається оновленнями, патчами та забезпечує високу доступність контрольного плану.

Автоматичні оновлення: EKS автоматично оновлює версію Kubernetes, усуваючи необхідність вручну втручатися та забезпечуючи, що кластер залишатиметься актуальним із найновішими функціями та патчами безпеки.

Масштабованість: EKS може автоматично масштабувати контрольний план Kubernetes в залежності від попиту, забезпечуючи, щоб кластер залишався чутливим до збільшення навантаження.

Інтеграція з AWS: EKS безшовно інтегрується з різними сервісами AWS, такими як AWS IAM для автентифікації та авторизації, Amazon VPC для мережевих з'єднань і AWS Load Balancers для публікації сервісів.

Безпека та відповідність стандартам: EKS розроблений для дотримання різних стандартів безпеки та вимог до відповідності, забезпечуючи безпечне та відповідне середовище для запуску контейнеризованих робочих навантажень.

Моніторинг та логування: EKS інтегрується з AWS CloudWatch для моніторингу здоров'я кластера та показників продуктивності, що робить простішим відстеження та усунення проблем.

Екосистема та спільнота: Як керований сервіс, EKS виграє від постійного покращення, підтримки та внеску від більшої спільноти Kubernetes.

Недоліки EKS (Amazon Elastic Kubernetes Service):

Вартість: EKS — це керований сервіс, і це зручність, яка має свою ціну. Запуск кластера EKS може бути дорожчим порівняно з самостійно керованим Kubernetes, особливо для великих розгортань.

Менше контролю: Хоча EKS забезпечує велику автоматизацію, це означає, що у вас є менше контролю над інфраструктурою та деякими налаштуваннями Kubernetes.

Переваги самостійно керованого Kubernetes на EC2 інстанціях:

Економія коштів: Самостійно керований Kubernetes дозволяє використовувати спотові інстанції EC2 та резервовані інстанції, що може зменшити загальну вартість запуску Kubernetes кластерів.

Гнучкість: З самостійно керованим Kubernetes у вас є повний контроль над конфігурацією та інфраструктурою кластера, що дозволяє налаштувати та оптимізувати його для конкретних випадків використання.

Сумісність з EKS: Самостійно керований Kubernetes на AWS все одно може використовувати різні сервіси та функції AWS, що дозволяє інтегруватися з існуючими ресурсами AWS.

Експериментальні функції: Самостійно керований Kubernetes дозволяє експериментувати з новітніми функціями та версіями Kubernetes до їх офіційної підтримки в EKS.

Недоліки самостійно керованого Kubernetes на EC2 інстанціях:

Складність: Налаштування та керування самостійно керованим Kubernetes кластером може бути складним і витратним за часом, особливо для тих, хто новий у Kubernetes або AWS.

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

Виклики масштабування: Масштабування контрольного плану самостійно керованого кластера може бути складним і потребує ретельного планування для забезпечення високої доступності під час подій масштабування.

Безпека та відповідність стандартам: Самостійно керовані кластери можуть вимагати додаткових зусиль для впровадження найкращих практик щодо безпеки та відповідності стандартам, порівняно з EKS, який має вбудовані функції безпеки.

Відсутність автоматизації: Самостійно керований Kubernetes вимагає більше ручного втручання та написання скриптів для певних операцій, що збільшує ризик помилок.

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

kubectl — Інструмент командного рядка для роботи з Kubernetes кластерами. Для отримання додаткової інформації, див. Встановлення або оновлення kubectl.

eksctl — Інструмент командного рядка для роботи з EKS кластерами, що автоматизує багато окремих завдань. Для отримання додаткової інформації, див. Встановлення або оновлення.

AWS CLI — Інструмент командного рядка для роботи з сервісами AWS, зокрема з Amazon EKS. Для отримання додаткової інформації, див. Встановлення, оновлення та видалення AWS CLI в Керівництві користувача AWS Command Line Interface.
Після встановлення AWS CLI, ми рекомендуємо також його налаштувати.
Для отримання додаткової інформації дивіться "Швидке налаштування за допомогою aws configure" у Керівництві користувача AWS Command Line Interface.

Встановлення kubectl та eksctl

pic

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

Створення кластера EKS за допомогою Fargate

eksctl create cluster — name demo-cluster — region us-east-1 — fargate

pic

pic

Щоб налаштувати ваш kubectl (інструмент командного рядка Kubernetes) для взаємодії з кластером Amazon Elastic Kubernetes Service (EKS).

aws eks update-kubeconfig --name demo-cluster --region us-east-1  
Added new context arn:aws:eks:us-east-1:864899847052:  
 — cluster demo-cluster \  
 — region us-east-1 \  
 — name  
 — namespace game-2048

pic

Розгортання деплойменту, сервісу та Ingress

kubectl apply -f 

pic

kubectl get pods -n game-2048

pic

kubectl get ingress -n game-2048

pic

Перевірте, чи вже налаштовано IAM OIDC провайдера


  • aws iam list-open-id-connect-providers | grep $oidc_id | cut -d “/” -f4\n

Якщо немає, виконайте наступну команду:

eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve

pic

Як налаштувати alb add-on

Завантажте IAM політику

curl -O 

Створіть IAM політику

aws iam create-policy \\  
 --policy-name AWSLoadBalancerControllerIAMPolicy \\  
 --policy-document file://iam_policy.json

pic

Створіть IAM роль

eksctl create iamserviceaccount \\  
 --cluster= \\  
 --namespace=kube-system \\  
 --name=aws-load-balancer-controller \\  
 --role-name AmazonEKSLoadBalancerControllerRole \\  
 --attach-policy-arn=arn:aws:iam:::policy/AWSLoadBalancerControllerIAMPolicy \\  
 --approve

pic

Розгортання ALB контролера

Додайте helm репозиторій

helm repo add eks 

Оновіть репозиторій

helm repo update eks

Встановіть

helm install aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system \\  

 --set serviceAccount.name=aws-load-balancer-controller \\  
 --set region= \\  
 --set vpcId=

pic

kubectl get deployment -n kube-system aws-load-balancer-controller

pic

Тепер, коли ви

kubectl get ingress ingress-2048 -n game-2048

Перевірте адресу, що відображається тут, і DNS у ALB повинні збігатися.

pic

Перейдіть за адресою в браузері, і гра з'явиться.

pic

pic
pic

Розгортання ігрового додатку на AWS EKS дозволяє використовувати можливості управління Kubernetes.
Цей посібник охоплює налаштування EKS, контейнеризацію вашого додатку, його розгортання на EKS та управління вашим ігровим додатком.

Перекладено з: Step-by-Step Guide to Deploy a Game App on AWS EKS

Leave a Reply

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