这里我们将在microk8s上搭建一个sawtooth的开发测试环境,先使用单节点,采用devmode方式的共识。一个sawtooth节点的所有组件,预制在一个docker容器中。
1. microk8s的安装,请参考microk8s安装文章。
2. 安装sawtooth单节点
a. 下载sawtooth-kubernetes-default.yaml文件
查看sawtooth-0的deployment描述,名为sawtooth-0-xxx的pod中将包含:
! sawtooth-devmode-engine
! sawtooth-settings-tp
! sawtooth-intkey-tp-python
!sawtooth-xo-tp-python
!sawtooth-validator
!sawtooth-rest-api
! sawtooth-shell
与上图描述一致,但是因为整个过程中,我们都不将使用xo-tp, 所以将这部分的docker镜像与对应服务的端口移除。
3. 启动sawtooth单节点
先检查一下当前环境已经启动的pod: sudo microk8s kubectl get pod -A
可以看到安装了calico网络插件和dns域名插件。
使用kubectl apply -f 启动sawtooth 节点(首次由错误参考注视部分修改),创建成功后查询创建的Pod, 可以看到pod已经进入创建阶段。
拉取sawtooth image会花很长的时间,耐心等待sawtooth-0-xxxx 进入running状态。
4. 登陆 sawtooth shell command容器,
microk8s kubectl exec -it ‘sawtooth-0-xxx-xxxx’ --container sawtooth-shell -- bash
5. 验证sawtooth
5.1 sawtooth restful API 接口,使用Curl,读取block信息:curl http://localhost:8008/blocks
5.2 使用sawtooth 命令显示所有的block: sawtooth block list
5.3 显示一个block的更多信息: sawtooth block show{BLOCK-ID}
5.4 检验Sawtooth 组件状态
堆出命令行容器,从新进入要检验的容器。
kubectl exec -it $(kubectl get pods | awk '/sawtooth-0/{print $1}') --container sawtooth-validator -- bash
然后使用PS -A fw 检查组件的启动情况,如下图检查validator.
以上极为sawtooth 单节点在microk8s上的安装。可以参考Using Kubernetes for a Single Sawtooth Node,介绍, 获取更多的单节点安装内容。
Notes:
-----------------------------------------------------------------------------------------------------------
应用配置文件时报错,
修改配置文件, 将版本改为apps/v1, 增加selector, 修改如下: