Endpoint Node를 Clustering할때 몇가지 질문이 있습니다

안녕하세요 현재 클레이튼 엔드포인트 노드를 Kubernetes를 사용하여 운영하고있습니다.

Pod에 PV볼륨을 할당해서 사용하고있는데 Pod을 여러개를 실행하여

부하분산을 하고싶습니다만 EBS 볼륨을 계속 추가하게 된다는 것이 문제입니다.

Endpoint Node에서 바로 Database에 Chaindata를 저장을 할 수 있거나

Readonly Endpoint Node 여러대와 Writable Endpoint Node를 따로 설정하여 운영할 수 있나요?

Chaindata를 중앙화하여 저장하는 방법이 있는지, 해당 가이드가 있는지 궁금해서 질문 요청드립니다.

감사합니다.

현재 공식적으로 중앙화된 chaindata 관리 방식을 지원하고 있지는 않습니다.

다만, AWS DynamoDB, Redis, S3를 이용해서 중앙화된 cloud storage를 사용하는 실험적인 방법이 구현된 적이 있고, 그 과정에서 만들어진 기능을 한번 실험해 볼 수 있을 것 같습니다.

EN을 실행할 때, --kes.nodetype.service 옵션을 추가하면 원하시는 것처럼 read-only 방식으로 동작하게 됩니다. 만약, 이 EN이 다른 Pod와 동일 EBS를 공유하고 있다면 read-only 형태로 API 서비스가 일부 가능할 것 입니다.

그러나, 이 옵션은 중앙화된 local 저장소를 위해 만들어진 기능이 아니기에 말씀주신 상황에서 사용하기에 한계가 있습니다. 제 생각에는 다음과 같은 한계가 있을 것 같은데, 만약 EN 외부 인프라에서 커버 가능하시다면 한번 시도해보시는 것도 좋을 듯 습니다.

  1. 최신 블록 넘버가 갱신되지 않는 문제가 있을 것입니다.
    따라서, “latest” keyword를 사용하여 API 호출이 정상적으로 동작하지 않을 것입니다.

  2. websocket 연결을 통해 API 서비스가 정상적으로 안될 것 입니다.

혹시, 현재 기능을 좀 더 개선시키고 싶으시거나 좋은 아이디어가 있으시면 https://github.com/klaytn/klaytn 에서 개발 참여해주셔도 감사할 것 같습니다. :grinning:

감사합니다.

2개의 좋아요