Panduan Solusi Lengkap untuk Database Pencarian Elastic TypeSense Self-Hosting di Amazon EKS (Layanan Elastic Kubernetes)
README ini memberikan instruksi langkah demi langkah untuk menyiapkan cluster Amazon EKS (elastis Kubernetes) menggunakan skrip setup_eks_cluster.sh .
eksctl terpasangkubectl terpasang (pastikan itu mendukung kustomize)helm terpasang Tetapkan variabel lingkungan
Buka setup_eks_cluster.sh dan perbarui variabel berikut:
CLUSTER_NAME : Tetapkan nama cluster yang Anda inginkan (misalnya, "sampel")REGION : Tetapkan wilayah AWS yang Anda inginkan (misalnya, "US-East-1")ACCOUNT_ID : Ganti dengan ID Akun AWS Anda (misalnya, "12345678")VERSION : Set Versi Kubernetes (misalnya, "1.31")Pengaturan Grup Node:
WORKER_NODE_TYPE : Jenis instance untuk node pekerja (misalnya, "r6i.xlarge")WORKER_NODES : Jumlah awal node (misalnya, 2)WORKER_NODES_MIN : node minimum untuk autoscaling (misalnya, 1)WORKER_NODES_MAX : node maksimum untuk autoscaling (misalnya, 5)NODE_GROUP_NAME : Nama grup simpul (misalnya, "pekerja standar")Buat EKS Cluster
cluster.yaml yang dihasilkan sebelum melanjutkanKonfigurasikan grup node
WORKER_NODE_TYPE )WORKER_NODES_MIN , Max: WORKER_NODES_MAX )Associate IAM OIDC Provider
Siapkan EBS CSI Driver
Mengatur AWS Load Balancer Controller
Verifikasi instalasi
Membuat skrip dapat dieksekusi:
chmod +x setup_eks_cluster.sh
Jalankan skrip:
./setup_eks_cluster.sh
Ikuti output untuk memastikan setiap langkah berhasil diselesaikan
Ikuti langkah -langkah ini untuk menggunakan TypeSense menggunakan Kustomize:
Tinjau konfigurasi
applicationkustomization.yaml : file konfigurasi utamaKonfigurasikan Pengaturan TypeSense
Mengatur rahasia
kubectl kustomize environment/development/. atau kubectl kustomize environment/production/.Menyebarkan 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 configurationAkses TypeSense
Pemantauan
kubectl exec -it typesense-0 -n your-namespace -- curl http://localhost:8108/healthkubectl logs -f typesense-0 -n your-namespacePengaturan pipa 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' }}/.Diperlukan Rahasia GitHub:
AWS_ACCESS_KEY_ID : Kunci akses pengguna AWS IAMAWS_SECRET_ACCESS_KEY : AWS IAM Kunci Rahasia PenggunaEKS_CLUSTER_NAME : nama cluster EKSAWS_REGION : Wilayah AWSFitur Pipa:
Untuk mengatur pipa:
Untuk menghapus cluster EKS dan sumber daya terkait saat tidak lagi diperlukan:
Kami menyambut kontribusi untuk meningkatkan proyek TypeSense-ECS! Begini cara Anda dapat berkontribusi:
Garpu repositori
Buat cabang
feature/add-monitoring atau fix/nodegroup-scaling )Membuat perubahan Anda
Kirimkan permintaan tarik
Ulasan Kode
Jika Anda menemukan bug atau memiliki permintaan fitur:
Untuk pertanyaan atau diskusi, silakan gunakan bagian Diskusi Repositori.