Elasticsearch가 처음이신가요? Elasticsearch 입문용 웨비나에 참여하세요. 지금 무료 클라우드 체험을 시작하거나, 내 기기에서 Elastic을 사용해 볼 수 있습니다.
이 문서에서는 Autopilot을 사용하여 Google Cloud Kubernetes(GKE)에 Elasticsearch를 배포하는 방법을 알아보겠습니다.
Elasticsearch의 경우 Elastic Cloud on Kubernetes(ECK)를 사용할 예정입니다. 이는 모든 Elastic Stack 구성 요소의 Kubernetes 배포 오케스트레이션을 단순화하는 공식 Elasticsearch Kubernetes 오퍼레이터입니다.
다양한 GCP 인프라에 Elasticsearch 클러스터를 배포하는 방법에 대해 자세히 알아보려면 Google Cloud Compute 및 Google Cloud Marketplace 시작하기 문서를 참조하세요.
Elasticsearch 배포 작업

GKE Autopilot이란 무엇입니까?
Google Kubernetes Engine(GKE) Autopilot은 클러스터 구성, 노드 관리, 보안, 확장을 Google이 처리하고 개발자는 애플리케이션 배포에 집중할 수 있는 완전 관리형 Kubernetes 환경을 제공하며, 팀은 기본 제공되는 모범 사례를 통해 몇 분 안에 코드에서 프로덕션으로 전환할 수 있습니다.
Google Cloud에서 ECK는 언제 사용하나요?
Elastic Cloud on Kubernetes(ECK)는 전용 노드 역할, 고가용성 및 자동화와 같은 고급 기능을 갖춘 Elasticsearch를 배포하려는 기존 Kubernetes 인프라를 보유한 조직에 가장 적합합니다.
Google Cloud에서 ECK를 설정하는 방법은 무엇인가요?
1. Google Cloud 콘솔에 로그인합니다.
2. 오른쪽 상단의 Cloud Shell 버튼을 클릭하여 콘솔에 접속하고 거기에서 GKE 클러스터를 배포합니다. 또는 gcloud CLI를 사용할 수도 있습니다.
튜토리얼을 진행하는 동안 프로젝트 ID를 본인의 ID로 업데이트하는 것을 잊지 마세요.

3. Google Kubernetes Engine API를 활성화합니다.

다음을 클릭합니다.
이제 Kubernetes Engine API를 검색할 때 활성화된 것으로 표시되어야 합니다.

4. Cloud 셸에서 Autopilot 클러스터를 생성합니다. 이름을 autopilot-cluster-1로 지정하고 프로젝트의 ID를 autopilot-test로 바꿉니다.
5. 준비될 때까지 기다립니다. 생성하는 데 약 10분 정도 걸립니다.

클러스터를 올바르게 설정하면 확인 메시지가 표시됩니다.
6. kubectl 명령줄 접근 권한을 구성합니다.
다음과 같이 보셔야 합니다:

autopilot-cluster-1에 대한 kubeconfig 항목이 생성되었습니다.
7. Elastic Cloud on Kubernetes(ECK) 오퍼레이터를 설치합니다.
8. 기본값으로 단일 노드 Elasticsearch 인스턴스를 생성해 보겠습니다.
다양한 설정에 대한 몇 가지 레시피를 확인하려면 이 링크를 참조하세요.
storageClass을(를) 지정하지 않으면 ECK는 기본값으로 설정된 standard-rwo을(를) 사용하며, GKE의 경우 Compute Engine 영구 디스크 CSI 드라이버를 사용하여 1GB 볼륨을 생성한다는 점에 유의하세요.
기본 GKE 머신의 vm.max_map_count 값이 너무 낮기 때문에 nmap을(를) 비활성화했습니다. 프로덕션 환경에서는 비활성화하는 것을 권장하지 않으며, vm.max_map_count 값을 높이는 것이 좋습니다. 자세한 내용은 여기에서 확인할 수 있습니다.
9. 또한 Kibana 단일 노드 클러스터를 배포해 보겠습니다. Kibana의 경우 디바이스에서 Kibana에 접속하는 데 사용할 수 있는 외부 IP를 제공하는 LoadBalancer를 추가하겠습니다.
다음과 같이 주석을 참고하세요.
cloud.google.com/l4-rbs: "enabled"
이는 Autopilot에 공개 LoadBalancer를 제공하도록 지시하는 중요한 설정입니다. 설정하지 않으면 LoadBalancer가 내부에 있습니다.
10. 파드가 실행 중인지 확인합니다

11. Elasticsearch 버전, 노드 수 및 상태와 같은 더 구체적인 통계를 보려면 run kubectl get elasticsearch 및 kubectl get kibana을(를)사용할 수도 있습니다.


12. 서비스에 액세스합니다.

이렇게 하면 EXTERNAL-IP 아래에 Kibana의 외부 URL이 표시됩니다. LoadBalancer가 프로비저닝하는 데 몇 분 정도 걸릴 수 있습니다. EXTERNAL-IP의 값을 복사합니다.
13. 다음과 같이 'elastic' 사용자의 Elasticsearch 비밀번호를 가져옵니다.

14. 다음과 같이 브라우저를 통해 Kibana에 액세스합니다.
- URL: https://<EXTERNAL_IP>:5601
- Username:elastic
- 비밀번호: 28Pao50lr2GpyguX470L2uj5 (이전 단계에서 얻은 비밀번호)

15. 브라우저에서 액세스하면 시작 화면이 표시됩니다.

노드 변경이나 크기 조정과 같은 Elasticsearch 클러스터 사양을 변경하려면 새 설정으로 yml 매니페스트를 다시 적용하면 됩니다.
이 예시에서는 노드를 하나 더 추가하고 RAM과 CPU를 수정해 보겠습니다. 보시다시피 이제 kubectl get elasticsearch에는 2개의 노드가 표시됩니다.

Kibana도 마찬가지입니다.
컨테이너 CPU/RAM 및 Node.js 메모리 사용량(max-old-space-size)을 조정할 수 있습니다.
기존 볼륨 클레임은 크기를 줄일 수 없다는 점에 유의하세요. 업데이트를 적용한 후 오퍼레이터는 중단 시간을 최소화하면서 변경 사항을 적용할 것입니다.
불필요한 비용 발생을 방지하기 위해 테스트가 끝나면 클러스터를 삭제하는 것을 잊지 마세요.
다음 단계
Kubernetes 및 Google Kubernetes Engine에 대해 더 자세히 알아보려면 다음 문서를 참조하세요.





