Полное руководство по решению для базы данных эластичного поиска в Amazon EKS (Elastic Kubernetes Service)
В этом Readme предоставляет пошаговые инструкции для настройки кластера Amazon EKS (Elastic Kubernetes Service) с использованием скрипта setup_eks_cluster.sh .
eksctl установленkubectl установлен (убедитесь, что он поддерживает Kustomize)helm установлен Установить переменные среды
Откройте setup_eks_cluster.sh и обновите следующие переменные:
CLUSTER_NAME : установите желаемое имя кластера (например, «Пример»)REGION : установите желаемый регион AWS (например, «US-EAST-1»)ACCOUNT_ID : замените на идентификатор учетной записи AWS (например, "12345678")VERSION : Установить версию Kubernetes (например, "1.31")Настройки группы узлов:
WORKER_NODE_TYPE : Тип экземпляра для рабочих узлов (например, "r6i.xlarge")WORKER_NODES : начальное количество узлов (например, 2)WORKER_NODES_MIN : минимальные узлы для автоматического мастерства (например, 1)WORKER_NODES_MAX : максимальные узлы для автоматического мастерства (например, 5)NODE_GROUP_NAME : имя группы узлов (например, "Стандартные работники")Создать кластер EKS
cluster.yamlНастройте группы узлов
WORKER_NODE_TYPE )WORKER_NODES_MIN , max: WORKER_NODES_MAX )Ассоциированный поставщик IAM OIDC
Настройка драйвера EBS CSI
Настройка контроллера балансировщика нагрузки AWS
Проверьте установку
Сделайте исполняемый файл сценария:
chmod +x setup_eks_cluster.sh
Запустите сценарий:
./setup_eks_cluster.sh
Следуйте выводу, чтобы убедиться, что каждый шаг успешно завершается
Следуйте этим шагам для развертывания типов, используя Kustomize:
Просмотрите конфигурацию
applicationkustomization.yaml : основной файл конфигурацииНастройте типовые настройки
Установите секреты
kubectl kustomize environment/development/. или kubectl kustomize environment/production/.Развернуть типы
# Deploy to development environment
kubectl apply -k environment/development/.
# Deploy to production environment
kubectl apply -k environment/production/.
# Verify the deployment
kubectl get pods -n your-namespace # Check pod status
kubectl get pvc -n your-namespace # Verify storage provisioning
kubectl get svc -n your-namespace # Check service creation
kubectl get ingress -n your-namespace # Verify ingress configurationТипы доступа
Мониторинг
kubectl exec -it typesense-0 -n your-namespace -- curl http://localhost:8108/healthkubectl logs -f typesense-0 -n your-namespaceCI/CD настройка трубопровода
.github/workflows/aws.yml name : Deploy to EKS
on :
push :
branches : [ development, main ]
jobs :
build :
name : Deployment
runs-on : ubuntu-latest
environment : ${{ github.ref == 'refs/heads/main' && 'production' || 'development' }}
steps :
- name : Set short git commit SHA
id : commit
uses : prompt/actions-commit-hash@v2
- name : Check out code
uses : actions/checkout@v2
- name : Configure AWS credentials
uses : aws-actions/configure-aws-credentials@v1
with :
aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region : ${{ secrets.AWS_REGION }}
- name : Login to Amazon ECR
id : login-ecr
uses : aws-actions/amazon-ecr-login@v1
- name : Update kube config
env :
EKS_CLUSTER_NAME : ${{ secrets.EKS_CLUSTER_NAME }}
AWS_REGION : ${{ secrets.AWS_REGION }}
run : aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $AWS_REGION
- name : Deploy to EKS
run : |
kubectl apply -k environments/${{ github.ref == 'refs/heads/main' && 'production' || 'development' }}/.Требуемые секреты GitHub:
AWS_ACCESS_KEY_ID : AWS IAM IAM КЛЮЧЕВAWS_SECRET_ACCESS_KEY : AWS IAM IAM USERECT CEASTEKS_CLUSTER_NAME : имя кластера eksAWS_REGION : AWS РегионОсобенности трубопровода:
Чтобы настроить трубопровод:
Чтобы удалить кластер EKS и связанные с ними ресурсы, когда больше не нужно:
Мы приветствуем вклад в улучшение проекта TypeSense-EKS! Вот как вы можете внести свой вклад:
Вилка репозитория
Создать ветвь
feature/add-monitoring или fix/nodegroup-scaling )Внесите свои изменения
Отправить запрос на привлечение
Обзор кода
Если вы найдете ошибку или имеете запрос на функцию:
Для вопросов или обсуждений, пожалуйста, используйте раздел обсуждений репозитория.