LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > WAX sw/eden | 通过4个简单的步骤在K8s上搭建WAX基础设施

WAX sw/eden | 通过4个简单的步骤在K8s上搭建WAX基础设施

2020-01-03 EOSsweden 来源:区块链网络


给EOS sw/eden | EOS瑞典投票,请认准我们的主网节点ID:eosswedenorg

今日EOS BP排名:35


编译:aLex_区块链行者[sw/eden中文社区经理]

声明:文章内容仅为原作者观点,不代表本节点立场,且不构成任何投资建议

通过4个简单的步骤在K8s上搭建WAX基础设施


考虑使用Kubernetes自动化区块链网络的设置和管理?

Kubernetes是功能强大的云服务容器管理工具,可自动执行云服务容器的部署和管理。

Kubernetes(K8s)是云计算的下一波浪潮,所以很容易理解为什么随着企业迁移其基础架构和体系结构以适应云原生,数据驱动的时代。Kubernetes是实现区块链基础架构管理自动化的最佳平台。

降低基础架构成本

Kubernetes在容器,pod和集群级别使用高效的资源管理模型,通过确保集群始终有可用资源来运行应用程序,从而帮助你降低云基础架构的成本。

作者演示了在Kubernetes上设置WAX基础架构所涉及的步骤,即BP出块节点,API节点等。

我们从API nodeos开始

WAX团队通过提供最新的Docker映像做了出色的工作。如果你想了解更多有关WAX docker的信息,请参阅此链接。

我们将使用Kubernetes的Statefulset工作负载来运行该服务。

什么是有状态集?


StatefulSet是用于管理有状态应用程序的工作负载API对象。

管理一组Pods的部署和扩展,并保证有关这些Pod的顺序和唯一性。

像开发一样,StatefulSet管理基于相同容器规范的Pod。与部署不同,StatefulSet为其每个Pod维护一个粘性身份。这些Pod是根据相同的规范创建的,但不可互换:每个Pod都有一个永久性标识符,该标识符在所有重新计划中都会维护。

如果你不熟悉StatefulSets,现在是学习的好时机,请咨询官方文档,以了解其用法和提供的保障。

如果你还没有K8s集群,这里就不赘述如何设置Kubernetes了,请阅读此博文了解。

是时候上手了

确保你的kubect已连接到要设置的活动集群。

第1步 - 创建Configmap和secrets

ConfigConfigs是Kubernetes对象,可以从其他来源(例如目录或文件)中提取配置信息。

$kubectl create cm wax-config --from-file=confing.ini --from-file=genesis.json

Kubernetes secret对象可让你存储和管理敏感信息,例如密码,OAuth代币和ssh密钥。将该信息放入secret目录中比将其逐字放入Pod定义更为安全和灵活。

$kubectl create secret wax-certs ${CERT_NAME} --key ${KEY_FILE} --cert ${CERT_FILE}

第2步 - 创建数据卷

用于数据存储的永久卷:卷已附加到具有适当的永久卷声明的Pod。如果终止,Kubernetes将在启动时将永久卷重新附加到新的Pod副本。之所以可行,是因为副本将继承永久卷的Claim,而Kubernetes会指出实现这一切的云API详细信息。

要根据你的云提供商创建PVC,请参考此链接。

对于演示,我将使用可在任何地方使用的主机Volume。只需在要运行Pod的节点上创建一个文件夹。

$mkdir /data/waxapinode

第3步 - 运行Pod

https://github.com/airdropsdac/wax-k8/blob/master/apinode.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: jsr-wax-api1
spec:
serviceName: "waxapi-demo"
replicas: 1
selector:
matchLabels:
app: waxapi
template:
metadata:
labels:
app: waxapi
spec:
nodeName: node1
containers:
- name: waxapi
image: waxteam/production:wax-1.8.4-1.0.0
imagePullPolicy: IfNotPresent
command:
- /bin/bash
- -ce
- nodeos --disable-replay-opts --> ports:
- containerPort: 9999
name: web
protocol: TCP
- containerPort: 9876
name: p2p
protocol: TCP
volumeMounts:
- mountPath: /data/waxapinode
name: apinode1
- mountPath: /opt/waxconfig
name: configvol
- mountPath: /opt/ssl
name: sslvolumes:
- name: ssl
secret:
secretName: wax-certs
- hostPath:
path: /data/waxapinode
type: Directory
name: apinode1
- configMap:
name: wax-config
name: configvol

查询状态:

$kubectl get pods
$kubectl describe pod jsr-wax-api1-0

第4步 - 创建服务

https://github.com/airdropsdac/wax-k8/blob/master/wax-service.yaml

apiVersion: v1
kind: Service
metadata:
name: waxapi-svc
labels:
app: waxapi-svc
spec:
type: LoadBalancer
ports:
- port: 80
name: http
targetPort: 8888
- port: 443
name: https
targetPort: 9999
- port: 9876
name: p2p
targetPort: 9876
selector:
app: waxapi

检查服务:

$kubectl get svc

小结

这样,你就可以在K8上运行一个有状态的应用程序。只需更改名称,我们就可以拥有p2p节点和BP出块节点了。

希望本文能帮助提高在Kubernetes上运行区块链应用程序的信心。

参考资料:

https://medium.com/@maltablock/building-wax-infrastructure-on-k8s-with-4-easy-steps-d7be4cf522dd

如果您想了解更多,我们在这里:

WEB: https://eossweden.org
币乎: https://bihu.com/people/98843
微博: https://weibo.com/eossweden
BUSY: https://busy.org/@xebb
TELEGRAM: https://t.me/eossweden
TWITTER: https://twitter.com/eossweden
MEDIUM:https://medium.com/@eosswedenorg
STEEMIT: https://steemit.com/@eos.sw-eden FACEBOOK: https://www.facebook.com/EOS-sweden-554084258304426

给EOS sw/eden | EOS瑞典投票,请认准我们的主网节点ID:eosswedenorg


扫一扫加入我们的官方微信社群
共建EOS sw/eden中文社区

—-

编译者/作者:EOSsweden

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...