36.12. 수동 Elasticsearch 롤아웃
OpenShift Container Platform 3.7부터 집계된 로깅 스택은 Elasticsearch Deployment Config 오브젝트를 업데이트하여 더 이상 구성 변경 트리거를 사용하지 않도록 합니다. 즉, dc
에 대한 변경으로 인해 자동 롤아웃이 발생하지 않습니다. 이는 클러스터 구성원을 다시 시작할 때 과도한 shard 리밸런싱을 생성할 수 있는 Elasticsearch 클러스터에서 의도하지 않은 재시작을 방지하는 것이었습니다.
이 섹션에서는 두 가지 재시작 절차인 rolling-restart 및 full-restart 를 제공합니다. 롤링 재시작을 통해 가동 중지 시간(세 개의 마스터 구성) 없이 Elasticsearch 클러스터에 적절한 변경 사항을 적용하고 전체 재시작은 기존 데이터에 위험 없이 안전하게 주요 변경 사항을 적용합니다.
36.12.1. Elasticsearch 롤링 클러스터 재시작 수행
다음과 같은 변경 사항이 있는 경우 롤링 재시작이 권장됩니다.
- Elasticsearch Pod가 실행되는 노드를 재부팅해야 합니다.
- logging-elasticsearch configmap
- logging-es-* 배포 구성
- 새 이미지 배포 또는 업그레이드
이는 권장되는 재시작 정책입니다.
openshift_logging_use_ops
가 True
로 구성된 경우 Elasticsearch 클러스터에 대해 작업을 반복해야 합니다.
의도적으로 노드를 중단할 때 shard 밸런싱을 방지합니다.
$ oc exec -c elasticsearch <any_es_pod_in_the_cluster> -- \ curl -s \ --cacert /etc/elasticsearch/secret/admin-ca \ --cert /etc/elasticsearch/secret/admin-cert \ --key /etc/elasticsearch/secret/admin-key \ -XPUT 'https://localhost:9200/_cluster/settings' \ -d '{ "transient": { "cluster.routing.allocation.enable" : "none" } }'
완료되면 Elasticsearch 클러스터의 각
dc
에 대해oc rollout latest
를 실행하여 최신 버전의dc
오브젝트를 배포합니다.$ oc rollout latest <dc_name>
새 포드가 배포됩니다. 포드에 2개의 컨테이너가 준비되면 다음
dc
로 이동할 수 있습니다.클러스터의 모든 'dc's가 롤아웃되면 shard 밸런싱을 다시 활성화합니다.
$ oc exec -c elasticsearch <any_es_pod_in_the_cluster> -- \ curl -s \ --cacert /etc/elasticsearch/secret/admin-ca \ --cert /etc/elasticsearch/secret/admin-cert \ --key /etc/elasticsearch/secret/admin-key \ -XPUT 'https://localhost:9200/_cluster/settings' \ -d '{ "transient": { "cluster.routing.allocation.enable" : "all" } }'