typesense eks
1.0.0
一個完整的解決方案指南,用於Amazon EKS上的自托型彈性搜索數據庫(彈性Kubernetes服務)
此REDME提供了使用setup_eks_cluster.sh腳本設置Amazon EKS(Elastic Kubernetes Service)群集的分步說明。
eksctlkubectl (確保它支持Kustomize)helm 設置環境變量
打開setup_eks_cluster.sh並更新以下變量:
CLUSTER_NAME :設置所需的群集名稱(例如,“示例”)REGION :設置所需的AWS區域(例如,“ US-EAST-1”)ACCOUNT_ID :用您的AWS帳戶ID替換(例如,“ 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 ,最大: WORKER_NODES_MAX )助理IAM OIDC提供商
設置EBS CSI驅動程序
設置AWS負載平衡器控制器
驗證安裝
使腳本可執行:
chmod +x setup_eks_cluster.sh
運行腳本:
./setup_eks_cluster.sh
關注輸出以確保每個步驟成功完成
請按照以下步驟使用Kustomize部署類型:
查看配置
application程序目錄kustomization.yaml :主配置文件配置typeensens設置
設置秘密
kubectl kustomize environment/development/.或kubectl kustomize environment/production/.部署typessense
# 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 configuration訪問類型
監視
kubectl exec -it typesense-0 -n your-namespace -- curl http://localhost:8108/healthkubectl logs -f typesense-0 -n your-namespaceCI/CD管道設置
.github/workflows/aws.yml中的github操作工作流程 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用戶訪問密鑰AWS_SECRET_ACCESS_KEY :AWS IAM用戶秘密密鑰EKS_CLUSTER_NAME :EKS群集名稱AWS_REGION :AWS地區管道特徵:
設置管道:
在不再需要時刪除EKS群集和相關資源:
我們歡迎捐款以改善TypeSense-eks項目!您可以做出貢獻:
分叉存儲庫
創建一個分支
feature/add-monitoring或fix/nodegroup-scaling )進行更改
提交拉請請求
代碼審查
如果您找到錯誤或有功能請求:
有關問題或討論,請使用存儲庫的討論部分。