Una guía de solución completa para la base de datos de búsqueda elástica de los tipos de autohospense en Amazon EKS (servicio elástico de Kubernetes)
Este ReadMe proporciona instrucciones paso a paso para configurar un clúster de Amazon EKS (elastic Kubernetes) utilizando el script setup_eks_cluster.sh .
eksctl instaladokubectl instalado (asegúrese de que admite kustomize)helm instalado Establecer variables de entorno
Abra setup_eks_cluster.sh y actualice las siguientes variables:
CLUSTER_NAME : establezca el nombre de su clúster deseado (por ejemplo, "muestra")REGION : Establezca la región de AWS deseada (por ejemplo, "US-East-1")ACCOUNT_ID : reemplace con su ID de cuenta de AWS (por ejemplo, "12345678")VERSION : Establezca la versión de Kubernetes (por ejemplo, "1.31")Configuración del grupo de nodo:
WORKER_NODE_TYPE : tipo de instancia para nodos de trabajadores (por ejemplo, "R6i.xlarge")WORKER_NODES : número inicial de nodos (por ejemplo, 2)WORKER_NODES_MIN : nodos mínimos para autoscalización (por ejemplo, 1)WORKER_NODES_MAX : nodos máximos para autoscalización (por ejemplo, 5)NODE_GROUP_NAME : nombre del grupo de nodo (por ejemplo, "trabajadores estándar")Crear clúster EKS
cluster.yaml generado.yaml antes de continuarConfigurar grupos de nodos
WORKER_NODE_TYPE )WORKER_NODES_MIN , max: WORKER_NODES_MAX )Proveedor asociado de IAM OIDC
Configurar controlador EBS CSI
Configurar el controlador de equilibrio de carga de AWS
Verificar la instalación
Hacer que el script sea ejecutable:
chmod +x setup_eks_cluster.sh
Ejecute el guión:
./setup_eks_cluster.sh
Siga la salida para garantizar que cada paso se complete con éxito
Siga estos pasos para implementar Typesense usando Kustomize:
Revisar la configuración
applicationkustomization.yaml : archivo de configuración principalConfigurar configuraciones de tipos de tipos
Configurar secretos
kubectl kustomize environment/development/. o kubectl kustomize environment/production/.Implementar typesense
# 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 configurationAcceso a los tipos
Escucha
kubectl exec -it typesense-0 -n your-namespace -- curl http://localhost:8108/healthkubectl logs -f typesense-0 -n your-namespaceConfiguración de tuberías de 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' }}/.Secretos de GitHub requeridos:
AWS_ACCESS_KEY_ID : clave de acceso de usuario de AWS IAMAWS_SECRET_ACCESS_KEY : clave de secreto del usuario de AWS IAMEKS_CLUSTER_NAME : nombre de clúster eksAWS_REGION : región de AWSCaracterísticas de la tubería:
Para configurar la tubería:
Para eliminar el clúster EKS y los recursos asociados cuando ya no se necesita:
¡Agradecemos contribuciones para mejorar el proyecto Typesense-Eks! Así es como puedes contribuir:
Bifurca el repositorio
Crear una rama
feature/add-monitoring o fix/nodegroup-scaling )Haz tus cambios
Envíe una solicitud de extracción
Revisión del código
Si encuentra un error o tiene una solicitud de función:
Para preguntas o discusiones, utilice la sección de discusiones del repositorio.