文档章节

通过Helm在Kubernetes集群上安装IPFS

openthings
 openthings
发布于 2018/02/13 21:45
字数 1096
阅读 175
收藏 0

通过Helm在Kubernetes集群上安装IPFS

Helm (https://helm.sh/) 是用于Kubernetes的应用包管理程序,可以按照定义来安装、启动、停止、删除由多个Docker和Pod组合的服务应用,而且具有回滚等功能。

  • Helm的后台服务为Tiller,包描述文件称为Chart,是yaml格式,与Docker Compose有类似之处,但可选参数更多。
  • Helm的Chart可以保存在本地文件、本地Repo、Monocular或者Github等各种文件服务系统之中。
  • Helm安装方法,参见:https://my.oschina.net/u/2306127/blog/1619818

IPFS (http://ipfs.io/)可以通过Helm在Kubernetes集群上快速部署和方便地管理。

IPFS其它运行方式还有:

这里描述基于Helm的IPFS安装步骤。

  • 此处的方法在Docker for Mac Edge 18.02 mac53上运行通过。

1、复制Helm Charts库

git clone https://github.com/openthings/zhelm-charts.git

因为我们要进行一些修改,将stable/ipfs复制到自己的目录,如:zolo/ipfs。上面的库中已包含这个目录。因为Kubernetes官方Chart的ipfs版本较低,我们将其改为最新的0.4.13版本(注意values.yaml和Chart.yaml两个文件里的修改部分)。

2、安装IPFS Chart

进入目录 zolo/ipfs,运行:

helm install --name ipfs-node .

输出如下:

NAME:   ipfs-node
LAST DEPLOYED: Tue Feb 13 21:24:04 2018
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Service
NAME            TYPE       CLUSTER-IP     EXTERNAL-IP  PORT(S)            AGE
ipfs-node-ipfs  ClusterIP  10.98.146.104  <none>       5001/TCP,8080/TCP  0s

==> v1beta1/StatefulSet
NAME            DESIRED  CURRENT  AGE
ipfs-node-ipfs  1        1        0s


NOTES:
You have successfully installed IPFS in your kubernetes cluster!

You can access the IPFS API from inside your cluster by connecting to port 5001 on
    ipfs-node-ipfs.default

You can also connect to port 8080 on the same hostname for talking to the IPFS Gateway.


If you want to connect to it from your local computer, you can find a URL to connect with the
following (for the gateway service):
  export POD_NAME=$(kubectl get pods --namespace default -l "app=ipfs,release=ipfs-node"  -o jsonpath="{.items[0].metadata.name}")
  echo "Use the API Gateway by accessing http://localhost:8080/ipfs/<IPFS-HASH>"
  kubectl --namespace default port-forward $POD_NAME 8080:8080

3、查看运行状态

kubectl get pod

输出如下:

NAME                                                           READY     STATUS    RESTARTS   AGE
ipfs-node-ipfs-0                                               1/1       Running   0          1m
peddling-kitten-mongodb-55d9b47bb9-gb7tp                       1/1       Running   0          2d
peddling-kitten-monocular-api-6744c4cc66-gcsrs                 1/1       Running   3          2d
peddling-kitten-monocular-api-6744c4cc66-gfz5t                 1/1       Running   1          2d
peddling-kitten-monocular-prerender-5fcbd99b78-h2t6v           1/1       Running   0          2d
peddling-kitten-monocular-ui-7977d5c949-c47sj                  1/1       Running   0          2d
peddling-kitten-monocular-ui-7977d5c949-kchp4                  1/1       Running   0          2d
wondering-yak-nginx-ingress-controller-7cd79f85cd-88z2b        1/1       Running   0          2d
wondering-yak-nginx-ingress-default-backend-55755b66b4-hwd4z   1/1       Running   0          2d

可以看到ipfs-node的Pod已经运行起来了(如果第一次运行,需要下载ipfs的Docker镜像,需要耐心等待STATUS变为Running,再进行后续操作)。

4、映射服务端口

这里使用Kubernetes的port-forward方法映射服务端口到主机端口,但每次需哟啊运行一个服务。更多的方法参见:

现在按照提示,获取信息,映射服务端口:

export POD_NAME=$(kubectl get pods --namespace default -l "app=ipfs,release=ipfs-node"  -o jsonpath="{.items[0].metadata.name}")
echo "Use the API Gateway by accessing http://localhost:8080/ipfs/<IPFS-HASH>"
kubectl --namespace default port-forward $POD_NAME 8080:8080
  • 注意,除了上面之外,我们还需要映射5001端口以便于本地管理,因此,最后一行改为:
kubectl --namespace default port-forward $POD_NAME 8080:8080 5001:5001

保持这个命令一直运行,打开浏览器,输入:http://127.0.0.1:5001/webui,可以看到IPFS的本地管理界面。可以在里面上传文件,然后使用:http://127.0.0.1:8080/ipfs/<IPFS-HASH>的方式访问。鼠标右键单击Files里所上传的文件也可以获得该文件资源的HashCode值。

使用其它的Kubenetes管理工具(如Kubernetes Dashboard)也可以看到部署的pod服务。

5、删除ipfs-node服务

如果不再需要了,可以一行命令删除之。

#删除运行的服务
helm delete ipfs-node

#彻底删除Helm部署,重新安装
helm del --purge ipfs-node

更多参考

© 著作权归作者所有

共有 人打赏支持
openthings
粉丝 287
博文 1052
码字总数 574209
作品 1
东城
架构师
私信 提问
IPFS在Kubernetes部署的服务开放

IPFS在Kubernetes部署的服务开放 首先,通过Helm在Kubernetes集群上安装IPFS 。下一步需要将其管理服务端口8080和http代理服务端口5001开放出来,集群外面的应用(如浏览器)可以访问。 1、端...

openthings
2018/08/25
0
0
IPFS 服务的Python访问

IPFS 服务的Python访问 py-ipfs-api提供python api对IPFS服务通过http gateway进行访问,需要运行一个本地的IPFS daemon。https://github.com/ipfs/py-ipfs 是IPFS的纯Python语言实现,本身就...

openthings
2018/08/26
0
0
Helm 用户指南-系列(1)-序言+快速入门

序言 Helm是Kubernetes的一个包管理工具,用来简化基于Kubernetes平台运行的应用的部署和管理,极大的方便了集群运维人员及应用开发人员工作。 本指南是官方Kubernetes的github库中,helm项目...

店家小二
2018/12/29
0
0
Helm 架构 - 每天5分钟玩转 Docker 容器技术(161)

在实践之前,我们先来看看 Helm 的架构。 Helm 有两个重要的概念:chart 和 release。 chart 是创建一个应用的信息集合,包括各种 Kubernetes 对象的配置模板、参数定义、依赖关系、文档说明...

cloudman6
2018/04/29
0
0
是时候使用Helm了:Helm, Kubernetes的包管理工具

目前我们的一个产品共有4套环境:dev环境、test环境、staging环境、production环境。 其中dev, test, staging环境在一个Kubernetes集群上以不同namespace部署,production环境部署在另一个Kub...

xiaomin0322
2018/07/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

c++ 定义新的异常

#include <iostream> #include <exception> using namespace std; struct MyException : public exception { const char * what () const throw () { return "C++ Exception"; } }; int main......

天王盖地虎626
33分钟前
1
0
PDMan-2.1.1 发布:用心开源,免费的国产数据库建模工具(春节前最后一个版本)

一、软件介绍 PDMan 是一款开源免费的数据库模型建模工具,是PowerDesigner之外另一种更好的选择。支持Windows,Mac,Linux等操作系统,具有上手容易,使用简单的特点。 2018年获得码云GVP (Gi...

O龙猫O
58分钟前
10
0
OSChina 周二乱弹 —— 以后我偷小鱼干养你

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @庞巴哥 :只有这节奏瞬间变得轻松。。。。。。。。。分享Talking Eyes的单曲《In the sun (Extended Version)》: 《In the sun (Extended Ve...

小小编辑
今天
104
6
多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
9
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部