Un guide de solution complet pour la base de données de recherche élastique de type auto-hébergement sur Amazon EKS (service Kubernetes élastique)
Cette lecture fournit des instructions étape par étape pour configurer un cluster Amazon EKS (Elastic Kubernetes Service) à l'aide du script setup_eks_cluster.sh .
eksctl installékubectl installé (assurez-vous qu'il prend en charge Kustomalise)helm installée Définir les variables d'environnement
Ouvrir setup_eks_cluster.sh et mettre à jour les variables suivantes:
CLUSTER_NAME : définissez le nom du cluster souhaité (par exemple, "exemple")REGION : Définissez votre région AWS souhaitée (par exemple, "US-East-1")ACCOUNT_ID : Remplacez par votre ID de compte AWS (par exemple, "12345678")VERSION : Définissez la version Kubernetes (par exemple, "1.31")Paramètres de groupe de nœuds:
WORKER_NODE_TYPE : type d'instance pour les nœuds de travail (par exemple, "r6i.xlarge")WORKER_NODES : Nombre initial de nœuds (par exemple, 2)WORKER_NODES_MIN : nœuds minimum pour l'automate (par exemple, 1)WORKER_NODES_MAX : nœuds maximaux pour l'automate (par exemple, 5)NODE_GROUP_NAME : nom du groupe de nœuds (par exemple, "standard-workers")Créer un cluster EKS
cluster.yaml généré.yaml avant de continuerConfigurer les groupes de nœuds
WORKER_NODE_TYPE )WORKER_NODES_MIN , max: WORKER_NODES_MAX )Associé IAM OIDC Provider
Configurer le pilote EBS CSI
Configurer le contrôleur d'équilibreur de chargement AWS
Vérifiez l'installation
Rendre le script exécutable:
chmod +x setup_eks_cluster.sh
Exécutez le script:
./setup_eks_cluster.sh
Suivez la sortie pour vous assurer que chaque étape se termine avec succès
Suivez ces étapes pour déploier de typeSense à l'aide de Kustomalize:
Examiner la configuration
applicationkustomization.yaml : fichier de configuration principaleConfigurer les paramètres de typeSense
Configurer des secrets
kubectl kustomize environment/development/. ou kubectl kustomize environment/production/.Déployer de type
# 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 configurationAccès à la type
Surveillance
kubectl exec -it typesense-0 -n your-namespace -- curl http://localhost:8108/healthkubectl logs -f typesense-0 -n your-namespaceConfiguration du pipeline CI / 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' }}/.Secrets GitHub requis:
AWS_ACCESS_KEY_ID : AWS IAM ENTERS ENCORT UTILISATEURAWS_SECRET_ACCESS_KEY : AWS IAM User Secret KeyEKS_CLUSTER_NAME : nom du cluster eksAWS_REGION : Région AWSCaractéristiques du pipeline:
Pour configurer le pipeline:
Pour supprimer le cluster EKS et les ressources associées lorsqu'ils ne sont plus nécessaires:
Nous accueillons des contributions pour améliorer le projet TypeSense-Eks! Voici comment vous pouvez contribuer:
Fourchez le référentiel
Créer une branche
feature/add-monitoring ou fix/nodegroup-scaling )Apporter vos modifications
Soumettre une demande de traction
Revue de code
Si vous trouvez un bogue ou si vous avez une demande de fonctionnalité:
Pour des questions ou des discussions, veuillez utiliser la section Discortés du référentiel.