• 一、概述
  • 二、部署流程
  • 三、问题记录
  • 四、部署检查
  • 五、参考

一、概述

使用k8s官方的包管理工具helm部署以太坊私有链并启动三类节点和一个前端服务:

  • bootnode: used for Geth node discovery
  • ethstats: Ethereum Network Stats
  • geth-miner: Geth miner nodes
  • geth-tx: Geth transaction nodes with mining disabled whose responsbility is to respond to API (websocket, rpc) queries

二、部署流程

(1)helm环境搭建,参考:https://helm.sh
(2)生成Eth帐号和私钥

$ git clone https://github.com/vkobel/ethereum-generate-wallet
$ cd ethereum-generate-wallet
$ pip3 install -r requirements.txt
$ python3 ethereum-wallet-generator.pyPrivate key: 38000e15ca07309cc2d0b30faaaadb293c45ea222a117e9e9c6a2a9872bb3bcfPublic key:  60758d37d431d34b920847212febbd583008ec2a34d00f907d48bd48b88dc2661806eb99cb6178312d228b2fd08cdb88bafc352d0395ae09b2fe453f0c4403adAddress:     0xab70383d9207c6cc43ab85eeef9db4d33a8ad4e8

(3)在k8s集群里部署以太坊私有链

helm install --name my-release stable/ethereum--set geth.account.address=[PUBLIC_ADDRESS]--set geth.account.privateKey=[PRIVATE_KEY]--set geth.account.secret=[SECRET]

三、问题记录

(1)集群中helm tiller pod启动失败,因为gcr.io/kubernetes-helm/tiller:v2.8.2镜像无法下载
解决方案:

// 使用私有镜像
helm init --service-account tiller --upgrade -i huwanyang168/tiller:v2.8.0  --skip-refresh
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

(2)unable to do port forwarding: socat not found.
解决方案:登入node,手动安装socat

四、部署检查

(1)集群检查

$ kubectl get pods
NAME                                             READY     STATUS    RESTARTS   AGE
my-release-ethereum-bootnode-77df55bd8d-984tr     2/2       Running   0          3h
my-release-ethereum-ethstats-66d57558cb-jv4h8     1/1       Running   0          3h
my-release-ethereum-geth-miner-588d49d686-q6prj   1/1       Running   0          3h
my-release-ethereum-geth-miner-588d49d686-w4khs   1/1       Running   0          3h
my-release-ethereum-geth-miner-588d49d686-xwkwj   1/1       Running   0          3h
my-release-ethereum-geth-tx-d86fdbd8d-brx6q       1/1       Running   0          3h
my-release-ethereum-geth-tx-d86fdbd8d-zn692       1/1       Running   0          3h
$ kubectl get svc
NAME                             TYPE           CLUSTER-IP       EXTERNAL-IP    PORT(S)             AGE
kubernetes                       ClusterIP      172.16.0.1       <none>         443/TCP             5h
my-release-ethereum-bootnode   ClusterIP      None             <none>         30301/UDP,80/TCP    3h
my-release-ethereum-ethstats   LoadBalancer   172.16.193.170   180.76.58.29   80:32585/TCP        3h
my-release-ethereum-geth-tx    ClusterIP      172.16.13.205    <none>         8545/TCP,8546/TCP   3h

(2)以太坊私有链检查

// 开启rpc的端口映射
kubectl port-forward my-release-ethereum-geth-tx-d86fdbd8d-brx6q 8545:8545
// 进入geth console
geth attach http://127.0.0.1:8545
// 在console里检查账户及挖矿情况
> eth.accounts[0]
"0xa2fce6f4e4230b3654fad70a37896488f135b8b0"
> eth.getBalance(eth.accounts[0])
1.00366e+24

五、参考

(1)https://hub.kubeapps.com/charts/stable/ethereum
(2)https://www.jianshu.com/p/0ba2ee3ce248
(3)https://github.com/kubernetes/helm

使用Helm在k8s集群上部署以太坊私有链相关推荐

  1. 在阿里云Serverless K8S集群上部署Spark任务并连接OSS(详细步骤)

    在阿里云ASK集群上部署Spark任务并连接OSS 简介 ASK是阿里云的一个产品,属于Serverless Kubernetes 集群,这次实验是要在ASK集群上运行Spark计算任务(以WordC ...

  2. 体验篇 - 部署以太坊私有链 (PoA)

    本地部署一套以太坊私链,使用适用于联盟链的PoA共识 如果用默认的PoW共识,请看这篇: 体验篇 - 部署以太坊私链 (PoW) (1)bootnode 在poa目录下建立三个文件夹,分别是bootd ...

  3. 如何在tomcat下应用部署日志_如何在kubernete集群上部署springboot应用

    1.打包springboot镜像 2.在kubernete上发布镜像 3.测试 在之前的文章中,我讲了使用kubeadm从0到1搭建kubernete集群,今天我们来聊一下如何在这套k8s集群上部署s ...

  4. Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务

     前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for desktop中启用 ...

  5. k8s和harbor的集成_在Kubernetes集群上部署高可用Harbor镜像仓库

    在Kubernetes集群上部署高可用Harbor镜像仓库 一.Kubernetes上的高可用Harbor方案 首先,我可以肯定给出一个回答:Harbor支持在Kubernetes部署.只不过Harb ...

  6. 在Kubernetes集群上部署高可用Harbor镜像仓库

    这里主要介绍使用kubectl部署Harbor镜像仓库到Kubernetes集群中. 使用Helm部署,参考: https://my.oschina.net/u/2306127/blog/181969 ...

  7. 在Kubernetes集群上部署和管理JFrog Artifactory

    JFrog Artifactory是一个artifacts仓库管理平台,它支持所有的主流打包格式.构建工具和持续集成(CI)服务器.它将所有二进制内容保存在一个单一位置并提供一个接口,这使得用户在整个 ...

  8. 使用Kubeadm创建k8s集群之部署规划(三十一)

    前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此 ...

  9. 终于解决 k8s 集群中部署 nodelocaldns 的问题

    终于解决 k8s 集群中部署 nodelocaldns 的问题 参考文章: (1)终于解决 k8s 集群中部署 nodelocaldns 的问题 (2)https://www.cnblogs.com/ ...

最新文章

  1. [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )
  2. 微信jssdk批量添加卡券接口(踩坑经验)
  3. 苹果手机web开发踩坑记
  4. python基础(18)之 异常处理
  5. 【Android】HorizontalScrollView内子控件横向拖拽
  6. Django module学习之模板
  7. zabbix-设置邮箱预警
  8. 120万名 GoDaddy 客户数据遭泄露
  9. vb.net学习笔记
  10. c语言整数转浮点数_浮点数的秘密
  11. 5.14 创建基于图层的切片并输出网页 [原创Ps教程]
  12. 我的世界 Unity3D MineCraft 用Unity3D制作类似MineCraft我的世界的游戏 正经梳理一下开发01
  13. WMTS服务及地图瓦片原理
  14. 培养好习惯是很难,但也有方法
  15. 南京大学计算机系教材,模式识别-南京大学计算机系.pdf
  16. 从Workflowy到印象笔记
  17. 22.12.1打卡 漫步校园 记忆化搜索
  18. 专访腾讯高级交互设计师WingST:交互设计师的思维、眼界、手段和精神
  19. 【Sprite Atlas】Unity新图集系统SpriteAtlas超详细使用教程
  20. 【个人小结】一次数据库性能优化问题

热门文章

  1. PHP微信公众号网页授权登录 扫码登录 获取用户基本信息
  2. 关于华为交换机堆叠问题
  3. 克鲁伊夫:斗牛士因巴萨疯癫 红蓝一点克死皇马(2009-11-17)
  4. iOS开发模拟网络状态差进行调试
  5. 【100题】给定入栈序列,判断一个序列是否可能为输出序列
  6. 关于阿里云ECS服务器连接RDS数据库
  7. Python Pcan USB通信(基于PcanBus)
  8. i5 1230u怎么样 i51230u相当于什么水平级别
  9. 工作和生活遇到的Windows常见需求 跨局域网共享文件 网页加载慢更换DNS
  10. CC2530定时器1使能