当前位置:首页 » 云服务器 » 树莓派服务器怎么搭建

树莓派服务器怎么搭建

发布时间: 2023-08-08 13:43:36

‘壹’ 树莓派4B+ Centos7 部署k3s集群工具

kubernetes用于大型集群管理,而k3s属于kubernetes的一个轻量级版本,常用于嵌入式设备使用。现把它安装到树莓派上使用。

这里用到树莓派的系统是:CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-4-2009-sda.raw,型号是4B+,8g内存。
树莓派初次启动需要扩容,并且做一些基本调整:

cgroup是linux用来对进程分配cpu、内存资源的工具,需要在启动系统时开启他,k3s会用到。
在/boot/cmdline.txt后加入这个,然后reboot

k3s是一个轻量级的k8s,适用于树莓派这种嵌入式设备。

这个脚本跑完的时候,会把k3s添加到systemd里面,可以通过systemctl status k3s来查看运作状态。启动成功就可以使用啦

官方参考: https://rancher.com/docs/k3s/latest/en/installation/ha-embedded/

等它重启个好几次之后,基本就成功了。

如果一直失败,可以输入命令刷一下iptable缓冲
iptables --flush
iptables -tnat --flush

等第二个结点加入后,在任意结点执行命令,都能查看到已有的2个Server(Master)结点了

当Server结点数大于等于3个且为奇数时,集群才可以实现高可用。
大于等于3是因为k3s使用了Raft算法来实现一致性,而Raft算法的容崩率为1/3,也就是只要集群中有2/3台机器正常运作,集群就能正常运作,所以3台机器是最低要求;要奇数个结点是因为Raft算法过程中有一个很重要的随机投票选Leader的流程,结点们通过定期投票选举出一个Leader角色,然后其他结点在它的任期内就向他同步数据,这个时候如果结点数是偶数,那么容易出现平票问题,选不出leader,并且,崩溃后集群进行数据恢复过程中,实现一致的方法是多数服从少数,如果是偶数Master结点,且刚好被分割成2个结点规模一样的集团,就没办法恢复数据了[裂开],所以需要奇数个结点以避免权力平分问题。
以上为个人理解。

有兴趣的同学可以一起探讨这类共识算法,与此类似的还有联盟链的PBFT类算法,比特币PoW算法等等。

因为集群并非开放式集群,加入集群需要获取一个token作为校验。这个token可以从Master服务器上获取。(手动加入的话,仅需要使用相同的K3S_TOKEN参数启动即可。)

这样,结点就正常连接上啦:

关闭k3s进程后,后台还留存一些服务占用着端口,需要用官方脚本关闭他们

可以flush一下iptables,等他自己重启就行了。

有可能发生了一些冲突,可以试下重装k3s-agent

目前系统已经伴随k3s安装的一些软件:
crictl :类似与docker的命令行工具,比如:

k3s :封装了kubeneters基本工具在里面的集成,如使用kubectl:

这里示范部署一个最简单的web应用

--net host 代表与本机享受同一个网络命名空间

这里可以在docker容器内开启ssh服务: https://blog.csdn.net/Leo_csdn_/article/details/96150534

做好docker镜像后,就可以部署到集群上了。

等一会儿就能在pods列表里面看到了:

但这时候,这个pod并没有对外开放,只能在集群内部相互访问,通过get services命令查看集群的服务,发现并没有我们的hello-node服务。

expose命令其实是创建了一个service,用于给这个pod提供访问入口。
(如果使用--type=LoadBalancer,则代表一个deployment上管理的所有POD进行均衡负载,但这里还没用上deployment,第四章节会使用到)
等一会儿,pod上就有一个结点IP的对外端口,供外部访问了。

运行结束后,刚启动过的pod和service就不见了,服务也停止了。

docker容器,其实就是一个运行的轻量级系统,里面可以跑我们的业务应用。
而POD则是代表容器的集合,一个POD可以运行多个容器,一台机器上可以运行多个POD。
POD未必是一个对外开放的服务,他可能只是内部计算的程序,默认只能集群内部通信,所以还有Service的概念,用于让POD对外开放端口,供外部访问。这里的service本质上是个集群内部的负载均衡器,用来给同一个Deployment分流;对应的还有Ingress,外部负载均衡器,用于给多个Deployment分流。
而Deployment顾名思义,就是一次部署的抽象实例,比如说,现在需要部署一个3台机器均衡负载的nodejs业务应用,那么这个部署任务则代表一个deployment实例。

很快,我们可以看到POD和deployment的部署情况,都已经正常运作。

进入容器后可以使用基本linux命令,也可见8080端口已经被我们的node应用占用了。

但是此时service还没有他们,也就是正处于无法提供外部服务的状态。

这里对一个deployment里面的3个pod启动了个默认均衡负载服务,暴露出来的一个端口是30057,访问可通。
也能够通过logs命令查看控制台输出的日志。

因为deployment实例中包含了pod的部署配置,所以删除deployment时,k3s就会直接把pod也删除掉。
但service并不在deployment部署的范围内,所以需要同步删除它,在删除命令中通过","与deployment分割开来即可。
至此已经把刚起来的服务全部关闭掉了。

这里我们看到3个Server(Master)结点由于需要维护集群高可用,对CPU持续20%左右的消耗,内存也需要一个G左右。而Agent(Wroker)结点只需要执行部署任务,所以对内存与CPU的需求都相对低一些,仅维持在10%左右的CPU和半个G左右的内存消耗。

参考: https://zhuanlan.hu.com/p/120171512
参考: http://kubernetes.kansea.com/docs/hellonode/

‘贰’ 如何用树莓派搭建一个低能耗的Minecraft服务器

我们已经有教程教你怎么在windows/OSX盒子上搭建自己的方块世界Minecraft服务器了,但是如果我们需要更轻量级,更省电,而且要一直在线,朋友们随时可以上来玩的服务器呢?下文介绍了如何用树莓派搭建低能耗的Minecraft服务器,你可以全天不间断地开着,每天的电费大概只要一个便士。
为什么要折腾这个?
这个教程分为两个部分:搭建你自己的Minecraft服务器,以及在树莓派上搭建Minecraft服务器。为什么要自己搭Minecraft服务器呢?因为在自己的服务器上玩Minecraft,不是随便谁都可以做的。你可以让服务器一直运行,当你不玩的时候,你的朋友和家人还可以加入到游戏中,继续建造你的世界。你可以尝试修改游戏参数,制作mod,而且还能让你体验一把GM的感觉,这在公共服务器里可是做不到的,而且也不用花很多钱去租远程主机来做服务器。
对于Minecraft狂热粉丝而言,搭建Minecraft服务器已经很有吸引力了。但是在树莓派上搭则会更有吸引力。小小的树莓派耗电非常少,你可以不间断地开着服务器,一年的电费也不过几块钱而已。只要一个树莓派,一张SD卡,花上一点时间设置一下,就能有一台全天候的Minecraft服务器,月运行费用只不过一条口香糖的价格。
需要的东西
这篇教程需要一些硬件和软件;除了树莓派和SD卡之外的东西都是免费的。
1个树莓派(512MB的版本比较好)
1张4GB的SD卡
教程假设你已经熟悉了树莓派的环境,而且已经安装了Debian衍生的Raspbian。如果你的树莓派还没跑起来,可以参考:HTG树莓派起步教程。
针对Minecraft服务器优化Raspbian

和我们之间分享过的那些可以同时运行的项目不大一样(例如,树莓派的性能足以同时用作天气/电子邮件提醒器和一台谷歌云打印机),对于小小的树莓派而言,运行Minecraft服务器是一项非常耗费系统资源的任务,我们强烈推荐树莓派上只运行这一项任务。Minecraft看上去只有些方块,似乎不太耗资源。但事实上在简单的外表下有着非常复杂游戏核心,要耗费很多处理能力的。
所以我们接下来要修改配置文件以及其他一些设置,针对Minecraft服务器来优化Rasbian。第一步要做的是进入Raspi-Config,进行几项微调,如果你已经安装了Raspi-Config,那么进入终端,输入”sudo raspi-config”来运行。
第一项,也是最重要的一项是进行超频。我们要把处理能力设置得尽可能高一些,以保证Minecraft流畅运行。在Raspi-Config中,选择第七项”超频”。

关于超频,虽然能听到些很吓人的警告,但事实上超频是树莓派基金会官方支持的,自从2012年年末,设置菜单中就有了超频选项。进入超频菜单后,选择“Turbo 1000MhHz”。然后你又会看到这个级别的超频可能出现的危险的提示信息(有可能损坏SD卡,但事实上对硬件不会有危险)。点击OK,等待设备重启。

‘叁’ 如何用树莓派和Kali Linux搭建便携式的黑客工作站

可以按照以下步骤:

在树莓派上安装Kali。在开始之前,你需要和安装Kali Linux支持树莓派的触屏版本镜像。它与安装任何其他的树莓派操作系统一样。
连接显示屏。树莓派有一个触屏可适配的GPIO(通用输入/输出),即树莓派主板角上的一组针脚,如何使用显而易见。继续,插入显示屏到树莓派。
插上所有的电源并启动。安装好显示器后,就该接通其他零件的电源了。把Wi-Fi适配器和键盘接入到USB端口。再把树莓派连接到电池组。启动过程有可能有点缓慢和粗陋,不必为此担心。首先,在启动开始前,会先显示一会儿白屏。最终,将显示登录界面。
登录并且启用无线网卡。现在该登录和启用无线网卡了,这样你才可以真正地使用 Kali Linux 里的工具。树莓派会自动识别无线网卡,但是你仍然需要连接上网络。首先,需要启动 Kali Linux 图形用户界面并确保一切正常:</ol>树莓派的命令行上将显示用户名和密码的提示。输入用户名 root 和密码 toor (一会儿要修改掉该密码)。
输入 startx 然后回车来启动 Kali 图形界面。在树莓派上加载可能需要一段时间。
现在你可以用触屏和键盘来操控树莓派。点击底部任务栏的终端图标来打开命令行。
设置无线网卡,在命令行输入nano /etc/network/interfaCES 并回车来加载Wi-Fi设置的配置文件。
增加如下文本到你刚刚打开的文件,替换上你自己的网络信息:auto wlan0 iface wlan0 inet dhcp wpa-ssid “你的网络名称” wpa-psk “网络密码”完成后,按下 Ctrl+X 保存并退出。无线网卡现在可以使用了(有可能需要先重启)。 5. 修改密码。在开始任何操作之前,很有必要修改设备的root密码(避免其他也有类似黑客技能的人控制它)。还好这个过程很简单。.如果你还在命令行(如果不在,点击 Kali 的终端图标重新打开它),输入 passwd 并回车。
输入新密码两次
重新配置 OpenSSH 也有好处,这样它不会是默认设置。输入 dpkg-reconfigure openssh-server 并回车。

‘肆’ 树莓派搭建文件服务器

https://www.raspberrypi.org/downloads/raspberry-pi-os/

安装 Etcher 之后启动 Etcher,插入 SD 卡、选择要安装的 img 文件、选择 SD 卡对应的磁盘分区
https://www.balena.io/etcher/

① 新建一个ssh空白文件,放到root目录下,树莓派开机会自动启用
② 网络优先选择有线网络
③ 无线网络
将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的 /boot 目录下新建

具体详情看下面
https://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html

方法1:利用路由器软件查看IP地址

方法2:

ssh连接默认用户名:pi 密码:raspberry

方法3:IP Scanner

1.切换 root权限 sudo su
2.编辑下列文件

连接raw.githubusercontent.com失败
step1 :
在 https://site.ip138.com/raw.Githubusercontent.com/
输入raw.githubusercontent.com查询IP地址
step2 :
sudo nano /etc/hosts
你查到的ip地址,香港的就行 raw.githubusercontent.com
比如:
151.101.76.133 raw.githubusercontent.com

OpenMediaVault项目地址:
https://github.com/OpenMediaVault-Plugin-Developers/installScript

执行安装脚本:

step1:
输入树莓派的IP地址
初始用户名:admin
密码:openmediavault
step2:
1.连接硬盘
2.文件系统—>卸载硬盘
3.磁盘—>擦除
4.文件系统—>新建 文件系统选择EXT4
5.挂载—>应用
6.共享文件夹—>新建一个文件夹 设置权限
7.SMB/CIFS —>启用
8.共享—>添加共享

mac登陆
前往:连接服务器 smb://树莓派的ip地址
windows
我的电脑—>右键—>映射网络驱动器—>找到共享的文件夹

‘伍’ 服务器怎么搭建

服务器的搭建:

工具/原料:电脑:华硕笔记本、版本:win10(1803)、软件:FlashFXP(5.4.0版本)

1、先登录服务器,找到(虚拟)主机管理。

‘陆’ 一 . 树莓派A20 基本环境搭建 1

我的实验环境:

1.交叉编译工具链:gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux(4.8.2).tar.xz
2.SDK文件:MarsBoard-A20-Linux-SDK-V1.1.tar.bz2

在安装gcc-arm-linux-gnueabi的时候,会自动安装上gcc-4.6-arm-linux-gnueabi,如下图所示:

第二个文件的安装很重要,尽管后面提示的编译错误,缺少的是arm-linux-...,但是安装这个文件还是挺好用的。

根据前面安装的一些安装包,其实本节的交叉编译工具链可以不用操作。因为已经包含了本节所做的了。

我得先将vim改一下,否则按住上下左右,会出现A,B,C,D。

再/etc/profile最后一行添加内容:

然后:

这里做一些简要的说明,在网址: 链接 上有一些说明,从说明中,我们可以看到我们用的sdk的架构。

pack文件夹

选择2,server版本。

之后:

能找到的livesuit_marsboard_a20_debian.img就是生成的镜像文件。如果要修改名字,可以:

这里面就包含了image.cfg,找到里面的一项:

修改为其他的名字即可。

选择2,server版本。

1.若出现如下报错:

可以:

如果出现:

但是其实这些文件都是有的,可以不妨:

再次编译,则问题如下:

仔细找编译的shell输出文件,发现是rootfs/下的gz文件找不到,这是因为我做前面的操作的时候,希望生成自己的rootfs_my.tar.gz文件。现在我重新将该文件放到rootfs/下,再次编译,我将最后的结果放在下面:

这样表示成功了。

下面列入生成的镜像:

livesuit_superpi3.img即是。

1.我在做上面的操作的时候,夹杂的使用了两个开发板,一个是marsboard出品的a20开发板,另外一个是风火轮出品的a20树莓派3卡片电脑,说实在的,看起来风火轮附带板子资料挺多,但是其真正写的资料可没用心做,实在不是一个榜样,在该开发板上做非核心开发,是可以的,但是做研发,还是需要做考量。

烧写成功后,打印的内容如下,作为日志信息,留作以后分析:

‘柒’ 如何用树莓派搭建个人 web 服务器

Apache + Mysql + php

1、安装Apache

Apache可以用下面的命令来安装
sudo apt-get install apache2

Apache默认路径是/var/www/

其配置文件路径为:/etc/apache2/

可以通过:sudo vi /etc/apache2/ports.conf修改监听端口号

重启服务生效:sudo service apache2 restart

2、安装mysql

sudo apt-get install mysql-server
安装过程中,会出现一个提示符让你输入一个密码。
这个密码是mysql root用户的密码。

3、安装PHP

输入下面的命令,就可以安装PHP 5,以及PHP访问mysql数据库所需要的库。

sudo apt-get install php5

sudo apt-get install php5-mysql

4、测试

安装完成后,可以在浏览器中输入你路由器的IP或域名,就可以访问你的网站了。

你应该能看到一个页面显示“It works”,但是没有其它内容。

创建一个/var/www/index.php

5、外网访问

这里使用蒲公英组建异地局域网实现外网访问

先将蒲公英安装包预先上传至树莓派(路径:/home/oray/下载/PgyVPN_CentOS_2.0.0_x86_64.rpm)

通过cd命令进入存放蒲公英安装软件的目录,输入rpm命令进行安装;

cd 下载/
rpm -ivh PgyVPN_CentOS_2.0.0_x86_64.rpm

安装成功后,任意路径下输入“PgyVistor”命令即可调出交互界面,按照界面指示输入账号进行登录,可以选择打开自动登录。

之后,外网设备同样安装蒲公英客户端,用同一账号登录就可以访问树莓派的Web服务了~

‘捌’ 树莓派搭建mesh网络

设备:

参考资料:

如下图所示,mesh网络由MPP、MP、MAP三种设备组成:

这三种设备配置也不一样,他们之间是通过mesh链路连接在一起的,但是需要保证mesh节点工作的信道号和mesh id号必须相同!

首先要能ssh连上树莓派,由于树莓派本身的wifi模块不支持mesh网络,所以挑选了TL-WN722N V1

查看 https://www.jianshu.com/p/6407472e2550

在此示例中,我们将配置一个mesh节点以使用mesh网络,该节点将自动与使用相同配置(mesh和信道)的任何其他对等节点连接。

每个mesh节点都需要配置如下:

我的想使用第二张网卡也就是wlan1来做mesh组网,过程如下:
如果遇到了这个错误 command failed: Device or resource busy (-16) ,就先把网卡关掉在启用

添加mesh

查看是否创建成功

注意:默认情况下,所有mesh接口都从通道1开始。

关闭mesh0并设置mesh id

启用mesh0

分配ip,mesh组网要在同一个网段下

这样一台设备就配置好了。配置其他设备的时候只需要分陪不同的IP即可。在默认配置中,mesh节点将自动尝试创建所有其他具有相同mesh id的网格节点的对等链接。

使用phy接口,使用 iw list ,查看网卡对应的phy,我的wlan1对应的phy1
先关掉wlan1

验证是否创建成功

启用mesh0

设置ip,假设为10.0.0.1

使用 iw dev mesh0 station mp 和 iw dev mesh0 mpath mp 命令检查已建立的对等链接:

iw dev mesh0 mpath mp

一些解释:
Destination MAC Address :目地mac地址。此mesh路径的目的地。直接路径的目的地和下一跳具有相同的MAC地址。
Next-hop MAC address :下一跳地址。直接路径的目的地和下一跳具有相同的MAC地址。
IFACE :专属网的名称
SN :此路径的目标序列号。 DSN用于确定节点路径信息的“新鲜度”。例如,假设节点接收到其路径表中已经存在的目的地的路径响应。如果路径响应的DSN较高,则它将替换现有路径,因为它将被认为是较新的。
Air Time Link Metric :路径的度量(或“成本”)。较低的度量标准是首选,并且在选择了多个路径的情况下,协议栈将选择成本最低的协议(即:空中链路度量最低的协议)。该值是使用预期的吞吐量得出的(metric = 1 + 8192 / Expected_throughput_mbps)预期吞吐量(Expected_throughput_mbps)取决于驱动程序(例如,某些包含重传)。
Frame Queue Length :此网格路径的排队帧数。
Expiration Time :此mesh路径过期的时间(以jiffies为单位)
Discovery Timeout :路径发现的剩余时间(如果正在发现此路径)。
Discovery Retries :重试发现的次数(如果正在发现此路径)。
Flags :它是一个位掩码,由该路径的以下状态标志组成:

热点内容
取消微信设置密码在哪里设置 发布:2025-02-05 22:48:49 浏览:666
mysql内存存储 发布:2025-02-05 22:30:39 浏览:569
静态存储区堆栈 发布:2025-02-05 22:09:11 浏览:101
js加密算法 发布:2025-02-05 22:06:35 浏览:230
python3graphics 发布:2025-02-05 21:36:57 浏览:511
为什么英雄联盟一个服务器进不去 发布:2025-02-05 21:36:12 浏览:182
服务器搭建网站开发教材 发布:2025-02-05 21:31:57 浏览:567
pythonrose 发布:2025-02-05 21:31:46 浏览:923
php数组从小到大排序 发布:2025-02-05 21:26:01 浏览:325
单片机存储器扩展 发布:2025-02-05 21:17:35 浏览:966