Eine vollständige Lösungshandbuch für Selbsthosting-Typsense-Suchdatenbank in Amazon EKS (Elastic Kubernetes Service)
Dieses Readme bietet Schritt-für-Schritt-Anweisungen zum Einrichten eines Amazon EKS-Cluster (Elastic Kubernetes-Dienst) mit dem Skript setup_eks_cluster.sh .
eksctl installiertkubectl installiert (Stellen Sie sicher, dass es Kustomize unterstützt)helm installiert Umgebungsvariablen festlegen
Öffnen Sie setup_eks_cluster.sh und aktualisieren Sie die folgenden Variablen:
CLUSTER_NAME : Setzen Sie Ihren gewünschten Clusternamen (z. B. "Beispiel")REGION : Setzen Sie Ihre gewünschte AWS-Region (z. B. "US-East-1")ACCOUNT_ID : Ersetzen Sie durch Ihre AWS -Konto -ID (z. B. "12345678").VERSION : Kubernetes Version (z. B. "1.31") festlegenEinstellungen für Knotengruppen:
WORKER_NODE_TYPE : Instanztyp für Arbeiterknoten (z. B. "r6i.xlarge")WORKER_NODES : Anfangszahl der Knoten (z. B. 2)WORKER_NODES_MIN : Mindestknoten für das Autoscaling (z. B. 1)WORKER_NODES_MAX : Maximale Knoten für das Autoscaling (z. B. 5)NODE_GROUP_NAME : Name der Knotengruppe (z. B. "Standard-Mitarbeiter")Erstellen Sie EKS -Cluster
cluster.yaml vor dem fortfahrenKonfigurieren von Knotengruppen
WORKER_NODE_TYPE )WORKER_NODES_MIN , max: WORKER_NODES_MAX )Associate IAM OIDC -Anbieter
Richten Sie den EBS -CSI -Treiber ein
Richten Sie den AWS -Last -Balancer -Controller ein
Überprüfen Sie die Installation
Machen Sie das Skript ausführbar:
chmod +x setup_eks_cluster.sh
Führen Sie das Skript aus:
./setup_eks_cluster.sh
Befolgen Sie die Ausgabe, um sicherzustellen, dass jeder Schritt erfolgreich abgeschlossen ist
Befolgen Sie diese Schritte, um Artensex mit Kustomize bereitzustellen:
Überprüfung der Konfiguration
applicationkustomization.yaml : HauptkonfigurationsdateiKonfigurieren Sie die Artensense -Einstellungen
Geheimnisse einrichten
kubectl kustomize environment/development/. oder kubectl kustomize environment/production/.Artensexposition einsetzen
# 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 configurationZugriffsarten
Überwachung
kubectl exec -it typesense-0 -n your-namespace -- curl http://localhost:8108/healthkubectl logs -f typesense-0 -n your-namespaceCI/CD -Pipeline -Setup
.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' }}/.Erforderliche Github -Geheimnisse:
AWS_ACCESS_KEY_ID : AWS IAM -BenutzerzugriffstasteAWS_SECRET_ACCESS_KEY : AWS IAM User Secret KeyEKS_CLUSTER_NAME : eks cluster nameAWS_REGION : AWS -RegionPipeline -Funktionen:
Um die Pipeline einzurichten:
So löschen Sie den EKS -Cluster und die zugehörigen Ressourcen, wenn Sie nicht mehr benötigt werden:
Wir begrüßen Beiträge zur Verbesserung des Artensense-Eks-Projekts! So können Sie dazu beitragen:
Geben Sie das Repository auf
Erstellen Sie einen Zweig
feature/add-monitoring oder fix/nodegroup-scaling ).Nehmen Sie Ihre Änderungen vor
Senden Sie eine Pull -Anfrage
Code Review
Wenn Sie einen Fehler finden oder eine Funktionsanforderung haben:
Für Fragen oder Diskussionen verwenden Sie bitte den Abschnitt "Diskussionen des Repositorys".