Skip to content
This repository has been archived by the owner on Nov 7, 2023. It is now read-only.

Latest commit

 

History

History
342 lines (267 loc) · 11.8 KB

README.md

File metadata and controls

342 lines (267 loc) · 11.8 KB

axon 部署

目录结构

k8s-deploy
|
|___ k8s
|    |___ axon
|        |____axon-config
|           |____genesis.json
|           |____node_1.toml
|           |____node_2.toml
|           |____node_3.toml
|           |____node_4.toml
|        |____axon-chain.yaml
|        |____axon1-statefulset.yaml
|        |____axon2-statefulset.yaml
|        |____axon3-statefulset.yaml
|        |____axon4-statefulset.yaml
|        |____deploy.sh
|    |___ benchmark
|        |____configmap
|           |____config.json
|        |____axon-benchmark.yaml
|        |____axon-chain-to-axon-ns.yaml
|        |____deploy.sh
|    |___ logging
|        |fluent
|           |deploy.sh
|           |____fluentd-configmap.yaml
|           |____fluentd-daemonset.yaml
|    |___ ingress
|        |____axon-ingress.yaml
|___ |___ Makefile

axon 目录.

    |___ axon
       |____axon-config
          |____genesis.json
          |____node_1.toml
          |____node_2.toml
          |____node_3.toml
          |____node_4.toml
       |____axon-chain.yaml
       |____axon1-statefulset.yaml
       |____axon2-statefulset.yaml
       |____axon3-statefulset.yaml
       |____axon4-statefulset.yaml
       |____deploy.sh
 

axon1-statefulset.yaml

k8s axon node1 部署文件.

axon1-statefulset.yaml

axon2-statefulset.yaml

k8s axon node2 部署文件.

axon2-statefulset.yaml

axon3-statefulset.yaml

k8s axon node3 部署文件.

axon3-statefulset.yaml

axon4-statefulset.yaml

k8s axon node4 部署文件.

axon4-statefulset.yaml

axon-chain.yaml

创建axon service,做负载,用于benchmark 访问axon

axon-chain.yaml

deploy.sh

脚本提供部署、清除axon以及axon相关服务 deploy.sh

axon config 目录

该目录主要存放 deploy axon时,axon 所需要的配置

genesis.json

axon部署所需的配置文件,与[axonweb3/axon]下的同名文件保持一致。

genesis.json

node_1.toml

axon部署所需的配置文件,与[axonweb3/axon]下的同名文件保持一致。

node_1.toml

node_2.toml

axon部署所需的配置文件,与[axonweb3/axon]下的同名文件保持一致。

node_2.toml

node_3.toml

axon部署所需的配置文件,与[axonweb3/axon]下的同名文件保持一致。

node_3.toml

node_4.toml

axon部署所需的配置文件,与[axonweb3/axon]下的同名文件保持一致。

node_4.toml

default.db-options

RocksDB 默认配置文件。这个文件需要和 node.toml 在一个目录。默认在 config 目录搜,如果不存在就 axonweb3/axon 下同名文件保持一致

default.db-options

axon-benchmark-目录

该目录主要存放 k8s axon benchmark 部署文件

axon-benchmark.yaml

k8s axon benchmark 部署文件.

axon-benchmark

axon-chain-to-axon-ns.yaml

k8s axon benchmark 跨namespace 访问axon 的service 部署文件.

axon-chain-to-axon-ns.yaml

benchmark_deploy.sh

脚本提供部署、清除axon benchmark 以及axon benchmark相关服务 deploy.sh

axon-benchmark-configmap-目录

该目录主要存放 deploy axon benchmark时所需要的配置

config.json

axon benchmark部署所需的配置文件

{
    "http_endpoint": "http://axon-chain:8000",
    # Http address of axon rpc
    "private_key" : "0x37aa0f893d05914a4def0460c0a984d3611546cfb26924d7a7ca6e0db9950a2d",
    #Private Key
    "continuous_benchmark": true,
    #Whether to continue benchmark testing
    "benchmark_time": 60000,
    #When continuous_benchmark is false, the duration of the benchmark test
    "batch_size": 150,
    #Number of transactions sent per time
    "thread_num": 120,
    # Number of threads sending transactions
    "id": "936501604767629344",
    #discord webhook's id(When continuous_benchmark is false, the results are pushed to discord)
    "token": "",
    #discord webhook's token(When continuous_benchmark is false, the results are pushed to discord)
    "benchmark_cases": ["./benchmark", "./contract_benchmark"]
    #Use cases for benchmark
}

axon-fluntd-目录

该目录主要存放fluntd部署文件,用于收集axon node 的logs,并发送到ES。

fluentd-daemonset.yaml

k8s 部署fluentd 的部署文件.

fluentd-daemonset.yaml

fluentd-configmap.yaml

k8s 部署fluentd 所需要的配置文件

fluentd-configmap.yaml

fluentd-deploy.sh

脚本提供部署、清除fluentd 相关服务 deploy.sh

部署步骤

pre-requried

安装 ingress-controller。 参考官方文档ingress

axon-k8s-部署步骤

copy axon-devops 目录到指定机器上

$ git clone https://github.com/axonweb3/axon-devops
$ cd axon-devops/k8s-deploy/k8s

按照上述 k8s deploy 详解文档描述确认一下文件是否需要修改

  • node_1.toml
  • node_2.toml
  • node_3.toml
  • node_4.toml
  • genesis.json
  • default.db-options

给 k8s 节点添加标签,node-name 替换为节点名称

kubectl label nodes <node-name> disktype=node1
kubectl label nodes <node-name> disktype=node2
kubectl label nodes <node-name> disktype=node3
kubectl label nodes <node-name> disktype=node4

之后使用 make 命令 启动/停止服务

$ cd axon-devops/k8s-deploy/k8s
$ make axon-clean #停止axon 服务并清理数据
$ make axon-deploy # 启动axon服务

查看axon 是否启动成功。 deploy 时脚本会等2分钟,然后检查pod running 的数量,当不等于4时会提示部署失败,请注意部署时的log。

$ kubectl get pod -n axon

axon-k8s-benchmark-部署步骤

copy axon-devops 目录到指定机器上

$ git clone https://github.com/axonweb3/axon-devops
$ cd axon-devops/k8s-deploy/k8s

按照上述 k8s benchmark deploy 详解文档修改以下文件

  • config.json

之后使用 make 命令 启动/停止服务

$ cd axon-devops/k8s-deploy/k8s
$ make benchmark-clean #停止axon benchmark服务并清理数据
$ make benchmark-deploy # 启动axon benchmark服务

查看axon 是否启动成功。 deploy 时脚本会等2分钟,然后检查pod running 的数量,当不等于1时会提示部署失败,请注意部署时的log。

$ kubectl get pod -n axon-benchmark

axon-k8s-fluentd-部署步骤

copy axon-devops 目录到指定机器上

$ git clone https://github.com/axonweb3/axon-devops
$ cd axon-devops/k8s-deploy/k8s

fluentd 按照官方文档安装,用于收集axon 各个节点的日志,并发送到es。 暂时只需要确认config 文件中的es host 和port 是否需要修改

  • fluentd-configmap.yaml

之后使用 make 命令 启动/停止服务

$ cd axon-devops/k8s-deploy/k8s
$ make fluentd-clean #停止fluentd服务并清理数据
$ make fluentd-deploy # 启动fluentd服务

查看axon 是否启动成功。 deploy 时脚本会等2分钟,然后检查pod running 的数量,当不等于1时会提示部署失败,请注意部署时的log。

$ kubectl get pod -n logging