Amazon EKS의 자체 호스팅 타입에 대한 완전한 솔루션 가이드 (Elastic Kubernetes Service)
이 readme는 setup_eks_cluster.sh 스크립트를 사용하여 Amazon EK (Elastic Kubernetes Service) 클러스터를 설정하기위한 단계별 지침을 제공합니다.
eksctl 설치kubectl 설치 (kustomize를 지원하는지 확인)helm 설치되었습니다 환경 변수를 설정합니다
setup_eks_cluster.sh 열고 다음 변수를 업데이트합니다.
CLUSTER_NAME : 원하는 클러스터 이름을 설정합니다 (예 : "샘플")REGION : 원하는 AWS 지역을 설정하십시오 (예 : "US-East-1")ACCOUNT_ID : AWS 계정 ID (예 : "12345678")로 교체하십시오.VERSION : Set 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 드라이버를 설정하십시오
AWS로드 밸런서 컨트롤러를 설정하십시오
설치를 확인하십시오
스크립트 실행 파일 만들기 :
chmod +x setup_eks_cluster.sh
스크립트 실행 :
./setup_eks_cluster.sh
각 단계가 성공적으로 완료되도록 출력을 따라 가십시오
다음 단계에 따라 Kustomize를 사용하여 Typeense를 배포하십시오.
구성을 검토하십시오
application 디렉토리로 이동하십시오kustomization.yaml : 기본 구성 파일Typeense 설정을 구성하십시오
비밀을 설정하십시오
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 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 Actions Workflow가 포함되어 있습니다 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 )변경하십시오
풀 요청을 제출하십시오
코드 검토
버그를 찾거나 기능 요청이있는 경우 :
질문이나 토론은 저장소의 토론 섹션을 사용하십시오.