안녕하세요 현재 클레이튼 엔드포인트 노드를 Kubernetes를 사용하여 운영하고있습니다.
Pod에 PV볼륨을 할당해서 사용하고있는데 Pod을 여러개를 실행하여
부하분산을 하고싶습니다만 EBS 볼륨을 계속 추가하게 된다는 것이 문제입니다.
Endpoint Node에서 바로 Database에 Chaindata를 저장을 할 수 있거나
Readonly Endpoint Node 여러대와 Writable Endpoint Node를 따로 설정하여 운영할 수 있나요?
Chaindata를 중앙화하여 저장하는 방법이 있는지, 해당 가이드가 있는지 궁금해서 질문 요청드립니다.
감사합니다.
Aidan
2
현재 공식적으로 중앙화된 chaindata 관리 방식을 지원하고 있지는 않습니다.
다만, AWS DynamoDB, Redis, S3를 이용해서 중앙화된 cloud storage를 사용하는 실험적인 방법이 구현된 적이 있고, 그 과정에서 만들어진 기능을 한번 실험해 볼 수 있을 것 같습니다.
EN을 실행할 때, --kes.nodetype.service
옵션을 추가하면 원하시는 것처럼 read-only 방식으로 동작하게 됩니다. 만약, 이 EN이 다른 Pod와 동일 EBS를 공유하고 있다면 read-only 형태로 API 서비스가 일부 가능할 것 입니다.
그러나, 이 옵션은 중앙화된 local 저장소를 위해 만들어진 기능이 아니기에 말씀주신 상황에서 사용하기에 한계가 있습니다. 제 생각에는 다음과 같은 한계가 있을 것 같은데, 만약 EN 외부 인프라에서 커버 가능하시다면 한번 시도해보시는 것도 좋을 듯 습니다.
-
최신 블록 넘버가 갱신되지 않는 문제가 있을 것입니다.
따라서, “latest” keyword를 사용하여 API 호출이 정상적으로 동작하지 않을 것입니다.
-
websocket 연결을 통해 API 서비스가 정상적으로 안될 것 입니다.
혹시, 현재 기능을 좀 더 개선시키고 싶으시거나 좋은 아이디어가 있으시면 https://github.com/klaytn/klaytn 에서 개발 참여해주셔도 감사할 것 같습니다. 
감사합니다.
2개의 좋아요