Amazon EKSの自己ホスティングタイプセンス弾性検索データベースの完全なソリューションガイド(Elastic Kubernetesサービス)
このREADMEは、 setup_eks_cluster.shスクリプトを使用して、Amazon EKS(Elastic Kubernetesサービス)クラスターを設定するための段階的な手順を提供します。
eksctlインストールkubectlインストール(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 :autoscalingの最大ノード(例:5)NODE_GROUP_NAME :nodeグループの名前(例:「標準労働者」)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を使用してタイプセンスを展開します。
構成を確認します
applicationディレクトリに移動しますkustomization.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 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 )変更を加えてください
プルリクエストを送信します
コードレビュー
バグが見つかった場合、または機能リクエストがある場合:
質問やディスカッションについては、リポジトリのディスカッションセクションを使用してください。