คู่มือโซลูชันที่สมบูรณ์สำหรับฐานข้อมูลการค้นหาแบบยืดหยุ่นแบบโฮสต์ตัวเองบน Amazon EKS (บริการ Elastic Kubernetes)
readme นี้ให้คำแนะนำทีละขั้นตอนสำหรับการตั้งค่าคลัสเตอร์ Amazon EKS (Elastic Kubernetes) โดยใช้สคริปต์ setup_eks_cluster.sh
eksctlkubectl (ตรวจสอบให้แน่ใจว่ารองรับ 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
ตั้งค่าคอนโทรลเลอร์ Load Balancer AWS
ตรวจสอบการติดตั้ง
ทำให้สคริปต์ดำเนินการได้:
chmod +x setup_eks_cluster.sh
เรียกใช้สคริปต์:
./setup_eks_cluster.sh
ทำตามผลลัพธ์เพื่อให้แน่ใจว่าแต่ละขั้นตอนจะเสร็จสมบูรณ์
ทำตามขั้นตอนเหล่านี้เพื่อปรับใช้ typesense โดยใช้ kustomize:
ตรวจสอบการกำหนดค่า
applicationkustomization.yaml : ไฟล์การกำหนดค่าหลักกำหนดค่าการตั้งค่า typesense
ตั้งค่าความลับ
kubectl kustomize environment/development/. หรือ kubectl kustomize environment/production/.ปรับใช้ 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 configurationTypesense Access
การตรวจ
kubectl exec -it typesense-0 -n your-namespace -- curl http://localhost:8108/healthkubectl logs -f typesense-0 -n your-namespaceการตั้งค่าไปป์ไลน์ 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' }}/.ความลับของ GitHub ที่จำเป็น:
AWS_ACCESS_KEY_ID : AWS IAM ACCESS ACCESSAWS_SECRET_ACCESS_KEY : AWS IAM SECRETIN SECRETIONEKS_CLUSTER_NAME : ชื่อคลัสเตอร์ eksAWS_REGION : ภูมิภาค AWSคุณสมบัติท่อ:
ในการตั้งค่าท่อ:
ในการลบคลัสเตอร์ EKS และทรัพยากรที่เกี่ยวข้องเมื่อไม่ต้องการอีกต่อไป:
เรายินดีต้อนรับการมีส่วนร่วมในการปรับปรุงโครงการ TypeSense-EKS! นี่คือวิธีที่คุณสามารถมีส่วนร่วม:
แยกที่เก็บ
สร้างสาขา
feature/add-monitoring หรือ fix/nodegroup-scaling )ทำการเปลี่ยนแปลงของคุณ
ส่งคำขอดึง
รีวิวรหัส
หากคุณพบข้อผิดพลาดหรือมีคำขอคุณสมบัติ:
สำหรับคำถามหรือการอภิปรายโปรดใช้ส่วนการอภิปรายของที่เก็บ