Um guia de solução completa para o banco de dados de busca elástico de manifestação auto-hospedagem no Amazon EKS (Elastic Kubernetes Service)
Este ReadMe fornece instruções passo a passo para configurar um cluster Amazon EKS (Elastic Kubernetes Service) usando o script setup_eks_cluster.sh .
eksctl instaladokubectl instalado (verifique se ele suporta Kustomize)helm instalado Defina variáveis de ambiente
Abra setup_eks_cluster.sh e atualize as seguintes variáveis:
CLUSTER_NAME : defina o nome do cluster desejado (por exemplo, "amostra")REGION : Defina a região da AWS desejada (por exemplo, "US-leste-1")ACCOUNT_ID : Substitua pelo seu ID da conta AWS (por exemplo, "12345678")VERSION : defina a versão Kubernetes (por exemplo, "1.31")Configurações do grupo de nó:
WORKER_NODE_TYPE : tipo de instância para nós do trabalhador (por exemplo, "r6i.xlarge")WORKER_NODES : número inicial de nós (por exemplo, 2)WORKER_NODES_MIN : nós mínimos para autoscaling (por exemplo, 1)WORKER_NODES_MAX : nós máximos para autoscaling (por exemplo, 5)NODE_GROUP_NAME : Nome do Grupo de Nó (por exemplo, "Standard Workers")Crie cluster EKS
cluster.yaml gerado.yaml antes de prosseguirConfigure grupos de nó
WORKER_NODE_TYPE )WORKER_NODES_MIN , max: WORKER_NODES_MAX )Provedor associado do IAM OIDC
Configure o driver EBS CSI
Configurar controlador de balanceador de carga da AWS
Verifique a instalação
Faça o script executável:
chmod +x setup_eks_cluster.sh
Execute o script:
./setup_eks_cluster.sh
Siga a saída para garantir que cada etapa seja concluída com êxito
Siga estas etapas para implantar o TyeSense usando Kustomize:
Revise a configuração
applicationkustomization.yaml : arquivo de configuração principalConfigurar configurações de digitação
Configure segredos
kubectl kustomize environment/development/. ou kubectl kustomize environment/production/.Implante de times
# 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 configurationAcesso a entender
Monitoramento
kubectl exec -it typesense-0 -n your-namespace -- curl http://localhost:8108/healthkubectl logs -f typesense-0 -n your-namespaceConfiguração do pipeline 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' }}/.Segredos do Github exigidos:
AWS_ACCESS_KEY_ID : AWS IAM ACESSO DO ACESSO DA CHAVEAWS_SECRET_ACCESS_KEY : AWS IAM User Secret KeyEKS_CLUSTER_NAME : Nome do cluster EKSAWS_REGION : região da AWSRecursos de pipeline:
Para configurar o pipeline:
Para excluir o cluster EKS e os recursos associados quando não é mais necessário:
Congratulamo-nos com contribuições para melhorar o projeto ET-EKS! Veja como você pode contribuir:
Fork o repositório
Crie uma filial
feature/add-monitoring ou fix/nodegroup-scaling )Faça suas alterações
Envie um pedido de tração
Revisão do código
Se você encontrar um bug ou tiver uma solicitação de recurso:
Para perguntas ou discussões, use a seção de discussões do repositório.