KEMBAR78
Deploy Hyperledger Besu using Kubernetes | PPTX
Deploy Besu using Kubernetes
playground/kubectl/ibft2
https://github.com/Consensys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/ibft2
한국폴리텍대학 스마트금융과
Kubernetes environment
Local K8S
- 1 Control Plane : Ubuntu22.04 LTS, 5GB Memory, 50GB SSD
- 1 Woker : Ubuntu22.04 LTS, 25GB Memory, 100GB SSD
※[참고] 로컬 환경에서 쿠버네티스 설치는 아래 교안 참고
https://www.slideshare.net/slideshow/kubernetes-baremetal-installation-and-practice/269903559
본 besu 예제를 실행하기 위해서
Worker node 최소 메모리를 16GB로 가이드 되어 있음
(실제로는 20GB 이상 확보해야 무리 없이 진행 가능)
Overview
source : https://github.com/Consensys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/ibft2
Running K8s Results
실행 결과
git clone
git clone https://github.com/Consensys/quorum-kubernetes
해당 git의 여러 프로젝트 중 playgroun의 kubectl 로 실행하는 예제 디렉토리로 이동
root@master:~/quorum-kubernetes/playground/kubectl/quorum-besu/ibft2# pwd
/root/quorum-kubernetes/playground/kubectl/quorum-besu/ibft2
source : https://github.com/Consensys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/ibft2
config modification
vi configmap/besu-config-toml-configmap.yaml
원활한 실행을 위해 tx-* 관련 설정 일단 주석 처리
source : https://github.com/Consensys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/ibft2
Kubernetes environment
실행
(Public/Private Key를 새로 발급 받아도 무방하나, 그냥 실행해도 됨(이미 config, secret등에 설정이 완료된 예제임)
./deploy.sh
실행 상태 확인 (fail -> crash 반복하다가 정상상태로 바뀜)
watch kubectl get all -n besu -o wide
source : https://github.com/Consensys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/ibft2
[Lens로 결과 확인] Kubernetes Pods, Stateful Sets
[Lens로 결과 확인] Kubernetes Service/Endpoint
[Lens로 결과 확인] Kubernetes ConfigMap
[Lens로 결과 확인] kubernetes Secret
정상 확인(Peer 갯수 확인)
임의 Validator 노드에 Rest Call (아래 명령 실행은 Worker 노드에서 진행)
# curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' 10.108.229.219:8545
{"jsonrpc":"2.0","id":1,"result":"0x5"}
참여한 Peer가 5개임을 확인
Grafana로 확인
Woker 노드의 ip:30030 으로 접속
- id : admin
- password : password
Grafana로 확인 (이상 상황 확인/조치)
블록 동기화가 안되는 상황인 경우 해당 컨테이너에서 아래의 로그가 출력됨
Unable to find sync target. Currently checking 0 peers for usefulness
일시적으로 통신이 안되는 상황으로 로컬 실습환경에서는
해당 pod만 삭제하면 k8s의 stateful에 의해 pod가 자동 재성성 되면서
오류가 자연히 해결됨

Deploy Hyperledger Besu using Kubernetes

  • 1.
    Deploy Besu usingKubernetes playground/kubectl/ibft2 https://github.com/Consensys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/ibft2 한국폴리텍대학 스마트금융과
  • 2.
    Kubernetes environment Local K8S -1 Control Plane : Ubuntu22.04 LTS, 5GB Memory, 50GB SSD - 1 Woker : Ubuntu22.04 LTS, 25GB Memory, 100GB SSD ※[참고] 로컬 환경에서 쿠버네티스 설치는 아래 교안 참고 https://www.slideshare.net/slideshow/kubernetes-baremetal-installation-and-practice/269903559 본 besu 예제를 실행하기 위해서 Worker node 최소 메모리를 16GB로 가이드 되어 있음 (실제로는 20GB 이상 확보해야 무리 없이 진행 가능)
  • 3.
  • 4.
  • 5.
    git clone git clonehttps://github.com/Consensys/quorum-kubernetes 해당 git의 여러 프로젝트 중 playgroun의 kubectl 로 실행하는 예제 디렉토리로 이동 root@master:~/quorum-kubernetes/playground/kubectl/quorum-besu/ibft2# pwd /root/quorum-kubernetes/playground/kubectl/quorum-besu/ibft2 source : https://github.com/Consensys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/ibft2
  • 6.
    config modification vi configmap/besu-config-toml-configmap.yaml 원활한실행을 위해 tx-* 관련 설정 일단 주석 처리 source : https://github.com/Consensys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/ibft2
  • 7.
    Kubernetes environment 실행 (Public/Private Key를새로 발급 받아도 무방하나, 그냥 실행해도 됨(이미 config, secret등에 설정이 완료된 예제임) ./deploy.sh 실행 상태 확인 (fail -> crash 반복하다가 정상상태로 바뀜) watch kubectl get all -n besu -o wide source : https://github.com/Consensys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/ibft2
  • 8.
    [Lens로 결과 확인]Kubernetes Pods, Stateful Sets
  • 9.
    [Lens로 결과 확인]Kubernetes Service/Endpoint
  • 10.
    [Lens로 결과 확인]Kubernetes ConfigMap
  • 11.
    [Lens로 결과 확인]kubernetes Secret
  • 12.
    정상 확인(Peer 갯수확인) 임의 Validator 노드에 Rest Call (아래 명령 실행은 Worker 노드에서 진행) # curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' 10.108.229.219:8545 {"jsonrpc":"2.0","id":1,"result":"0x5"} 참여한 Peer가 5개임을 확인
  • 13.
    Grafana로 확인 Woker 노드의ip:30030 으로 접속 - id : admin - password : password
  • 14.
    Grafana로 확인 (이상상황 확인/조치) 블록 동기화가 안되는 상황인 경우 해당 컨테이너에서 아래의 로그가 출력됨 Unable to find sync target. Currently checking 0 peers for usefulness 일시적으로 통신이 안되는 상황으로 로컬 실습환경에서는 해당 pod만 삭제하면 k8s의 stateful에 의해 pod가 자동 재성성 되면서 오류가 자연히 해결됨