文档章节

通过Helm在Kubernetes集群上安装IPFS

openthings
 openthings
发布于 02/13 21:45
字数 956
阅读 102
收藏 4

通过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、映射服务端口

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

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
粉丝 256
博文 920
码字总数 473772
作品 1
东城
架构师
Helm 架构 - 每天5分钟玩转 Docker 容器技术(161)

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

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

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

xiaomin0322
07/20
0
0
Kubernetes 应用管理工具 Helm 使用指南

Helm 是一个类似于 yum/apt/homebrew 的 Kubernetes 应用管理工具。Helm 使用 Chart 来管理 Kubernetes manifest 文件。 安装 Helm 1、使用官方脚本安装最新版 2、更新 charts 列表 3、为 Ti...

Anoyi
06/28
0
0
使用Helm 在容器服务k8s集群一键部署wordpress

Helm 是啥? 微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get...

xianlubird
03/09
0
0
使用Helm charts在Kubernetes 1.4 MongoDB上部署

有人说:“如果你觉得国庆7天短的话,那么接下来上班的7天你就知道有多长了【二哈】”,今天周一,照列来一波干货来袭,喜欢来收。 2016年9月26日发布Kubernetes 1.4版本,其中包括几项新的功...

精灵云
2016/10/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

人生苦短:Python里的17个“超赞操作

人生苦短,我选Python”。那么,你真的掌握了Python吗? 1. 交换变量 有时候,当我们要交换两个变量的值时,一种常规的方法是创建一个临时变量,然后用它来进行交换。比如: # 输入 a = 5 b ...

糖宝lsh
52分钟前
4
0
咕泡-spring中常用设计模式概述

设计模式就是经验之谈,供后人借鉴,解决一些具有代表性的问题 设计模式来源于生活,反过来帮助我们更好生活 设计模式提升代码的可读性、可扩展性、维护成本、复杂业务问题 千万不要死记硬背...

职业搬砖20年
今天
2
0
day59-20180817-流利阅读笔记-待学习

假·照骗,真·社交焦虑 雪梨 2018-08-17 1.今日导读 发朋友圈之前,不少人为了展现更美好的生活状态会对照片加以“微调”,或是加个滤镜显得逼格更高,或是磨个皮瘦个脸拉个大长腿。现在,国...

aibinxiao
今天
23
0
OSChina 周五乱弹 —— 姑娘在这个节日里表白你接受么?

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @Sharon啊:完全被这个小姐姐圈粉了,学两首她的歌去哈哈 分享王贰浪的单曲《往后余生(翻自 马良)》 《往后余生(翻自 马良)》- 王贰浪 手...

小小编辑
今天
1K
17
为什么HashMap要自己实现writeObject和readObject方法?

为什么HashMap要自己实现writeObject和readObject方法? 如果你有仔细阅读过HashMap的源码,那么你一定注意过一个问题:HashMap中有两个私有方法。 private void writeObject(java.io.Objec...

DemonsI
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部