保姆级实操教程,如何在树莓派上玩转k3s!

过去一年间,企业对于在边缘设备上管理Kubernetes集群的需求明显增长。但是运行一个成熟的Kubernetes平台需要投入大量资源,并且对于边缘计算的场景而言过于复杂。因此,在今年年初Rancher Labs推出了一款轻 量级Kubernetes发行版——k3s 。它经过CNCF官方认证,可用于生产环境,发布8个月以来已在Github上 拥有超9000颗Star。

k3s大小只有40MB,仅需512MB RAM即可运行,可以满足在边缘计算环境中运行在x86、ARM64和ARMv7处理器上的小型、易于管理的Kubernetes集群的需求。

K3s之所以仅需512MB的运存,是因为它具有以下四个方面的变化:

  • 删除旧的、非必须的代码:K3s不包括任何默认禁用的Alpha功能或者过时的功能,原有的API组件目前仍运行于标准部署当中。除此之外,Rancher还删除了所有非默认许可控制器,in- tree云提供商和存储驱动程序,但允许用户添加任何他们需要的驱动程序。

  • 整合正在运行的打包进程:为了节省RAM,Rancher将通常在Kubernetes管理服务器上运行的多流程合并为单个流程。Rancher还将在工作节点上运行的kubelet、kubeproxy和flannel代理进程组合成一个进程。

  • 使用containerd代替Docker作为运行时的容器引擎:通过用containderd替换Docker,Rancher能够显著减少运行时占用空间,删除libnetwork、swarm、Docker存储驱动程序和其他插件等功能。

  • 除了 etcd 之外,引入 SQLite 作为可选的数据存储:Rancher在k3s中添加了SQLite作为可选的数据存储,从而为etcd提供了一个轻量级的替代方案。该方案不仅占用了较少的内存,而且大幅简化了操作。

在树莓派上安装k3s

现在,我们开始试一下在树莓派上安装k3s。在本例中使用的是树莓派4(4GB的版本),此外还需要准备一个可用于树莓派的SD卡。

1、 下载Raspbian

下载链接:

https://www.raspberrypi.org/downloads/raspbian/

通过上面的链接下载你选择的ISO,我下载的是Raspbian Buster Lite:

下载完成之后,在你的下载目录里会有一个压缩文件。

2、 Flash你的树莓派

我将使用Etcher来flash我的树莓派,但你可以根据自己的喜好来选择其他的工具。

如果你需要了解更多关于安装镜像的信息,请参阅官方文档:

https://www.raspberrypi.org/documentation/installation/installing-images/README.md

使用Etcher十分简单,你可以选择镜像以及你想要flash的SD卡,然后选择Flash:

3、 配置SSH和WiFi

完成flash之后,重新插入你的flash驱动,使用以下命令,你应该会看到使用 df-h 挂载了你的SD卡。

我用的是mac,所以我的SD卡应该挂载在 /Volumes/boot 这一目录下。为了可以SSH,我们需要在根目录下创建一个 ssh 文件,里面不包含任何内容:

touch /Volumes/boot/ssh

如果你使用的是Linux系统,它应该是:

touch /media/${USER}/boot/ssh

为了配置你的树莓派以连接到你的无线网络中,我们需要在SD卡的根目录中提供 wpa_supplicant.conf

创建配置文件:

vim /Volumes/boot/wpa_supplicant.conf

然后提供你的SSID和PSK:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

country=ZA


network={

ssid="your-wifi-name"

psk="your-wifi-password"

key_mgmt=WPA-PSK

}

弹出SD卡,并将其插入你的树莓派中并启动它。

4、 寻找你的IP

你可以使用 nmap 来寻找IP地址,但是在本例中,我已经登录到路由器,所以看一看DHCP列表,我能够在那里找到我的树莓派IP地址。

默认状态下,用户名为pi,密码是raspberry:

$ ssh pi@192.168.0.111

Warning: Permanently added '192.168.0.111' (ECDSA) to the list of known hosts.

pi@192.168.0.111's password:

Linux raspberrypi 4.19.57-v7l+ #1244 SMP Thu Jul 4 18:48:07 BST 2019 armv7l



The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.



Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.


SSH is enabled and the default password for the 'pi' user has not been changed.

This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.



pi@raspberrypi:~ $

此时,应该重置默认密码

$ passwd

Changing password for pi.

Current password:

New password:

Retype new password:

passwd: password updated successfully

5、安装k3s

Rancher Labs发布的最轻量且经过CNCF认证的Kubernetes发行版——k3s,针对ARM进行了优化,并且超级易于安装。

仔细看一下官方文档,以获取更多的配置选项和细节:

https://github.com/rancher/k3s/blob/master/README.md

安装k3s,超简单!

$ sudo su

$ curl -sfL https://get.k3s.io | sh -

[INFO] Finding latest release

[INFO] Using v0.8.0 as release

[INFO] Downloading hash https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-arm.txt

[INFO] Downloading binary https://github.com/rancher/k3s/releases/download/v0.8.0/k3s-armhf

[INFO] Verifying binary download

[INFO] Installing k3s to /usr/local/bin/k3s

[INFO] Creating /usr/local/bin/kubectl symlink to k3s

[INFO] Creating /usr/local/bin/crictl symlink to k3s

[INFO] Creating /usr/local/bin/ctr symlink to k3s

[INFO] Creating killall script /usr/local/bin/k3s-killall.sh

[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh

[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env

[INFO] systemd: Creating service file /etc/systemd/system/k3s.service

[INFO] systemd: Enabling k3s unit

Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.

[INFO] systemd: Starting k3s

Boom!大约1分钟之后,Kubernetes就已经在我的树莓派上 运行

$ kubectl get nodes

NAME STATUS ROLES AGE VERSION

raspberrypi Ready master 27s v1.14.5-k3s.1

默认情况下,在k3s中,Traefik开箱即用,为了确认这一点,我们来看看我们的部署:

$ kubectl get deployments --all-namespaces

NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE

kube-system coredns 1/1 1 1 3m29s

kube-system traefik 1/1 1 1 89s

在我们所有的命名空间中查看pod:

$ kubectl get pods --all-namespaces

NAMESPACE NAME READY STATUS RESTARTS AGE

kube-system coredns-b7464766c-8mgzr 1/1 Running 0 3m12s

kube-system helm-install-traefik-tqh92 0/1 Completed 0 3m12s

kube-system svclb-traefik-t6jvz 2/2 Running 0 93s

kube-system traefik-56688c4464-zvfxc 1/1 Running 0 92s

然后看一下我们的服务:

$ kubectl get service --all-namespaces

NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

default kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 4m4s

kube-system kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 4m5s

kube-system traefik LoadBalancer 10.43.133.86 192.168.0.100 80:32543/TCP,443:30200/TCP 2m5s

现在我们已经在树莓派上完成k3s的安装啦!

一起来探索k3s更多玩法吧

仅仅在树莓派上成功运行k3s当然不够,我们在之前的文章里还介绍了如何在mac上运行k3s、 如何将k3s与Rancher进行集成 以及 如何将k3s集成到Gitlab项目中 ,从这些文章里我们看到了k3s的种种可能。那么,除此之外,k3s是否还有其他玩法呢?本周六,到现场来和我们一起来探索吧!

10月26号(本周六)下午,坐标深圳南山区,首次线下k3s workshop将和大家见面啦!现场将会有Rancher Labs资深工程师,和你一起玩转k3s!以下是workshop议程:

一、 k3s概览

  • 为什么做k3s

  • k3s架构

  • k3s应用场景

二、 现场demo k3s

  • 在树莓派3b+上运行k3s

  • 使用Rancher管理k3s集群

三、 一起workshop!

  • 在x86机器上运行k3s

(参加workshop的小伙伴 请自备 笔记本电脑和2个1c+1G的ubuntu16.04虚拟机)

参加workshop的小伙伴均可获得以下技术书籍一本:

此外,第一个完成讲师任务的小伙伴还能获得一个 牛牛版树莓派哟!

Hello Kubernetes :)

周六下午的技术沙龙,除了上述提到的k3s workshop之外,现场还有两个演讲哟:

Rancher 2.3 特性介绍及Demo

分享嘉宾:张浩,Rancher Labs大中华区研发经理

在 Rancher Labs 公司先后参与了开源项目 Rancher 1.6, 开源容器存储项目 Longhorn 和 开源企业级Kubernetes管理平台 Rancher 2.0 的开发。

演讲摘要:Rancher Labs始终致力于打造创新的开源软件,帮助企业利用容器技术加快软件开发周期,改善IT操作流程。下一代旗舰产品Rancher 2.0更是解决业界遗留已久的Kubernetes易用性不佳以及学习曲线陡峭的问题。在本月初刚发布的 Rancher 2.3版本中,Rancher 正式支持了Windows Kubernetes、服务网络、集群模版等功能。从而为企业在生产中落地Docker与Kubernetes、构建新一代CaaS提供更加便捷的途径。

Rancher平台在金融券商的运维实践

分享嘉宾:朱秀龙,长城证券DevOps运维高级工程师

10年运维经验,曾先后供职于中国联通、腾讯互娱、平安信托,现负责长城证券DevOps架构的规划、搭建和运维工作。

演讲摘要:在云计算技术快速发展的今天,互联网给传统金融IT带来了诸多挑战。如何适应互联网环境下业务快速响应、快速部署的需求?传统金融IT如何应对技术改革的迫切压力?本次演讲将会分享金融券商系统的特性,长城证券如何结合容器技术快速满足业务需求,开发迭代运行互联网金融业务系统,以及Rancher平台在其中的实践。

About Rancher Labs

Rancher Labs由CloudStack之父梁胜创建。旗舰产品Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher一向因操作体验的直观、极简备受用户青睐,被Forrester评为2018年全球容器管理平台领导厂商,被Gartner评为2017年全球最酷的云基础设施供应商。

目前Rancher在全球拥有超过一亿的下载量,并拥有包括中国人寿、华为、中国平安、兴业银行、民生银行、平安证券、海航科技、厦门航空、上汽集团、海尔、米其林、丰田、本田、中船重工、中联重科、迪斯尼、IBM、Cisco、Nvidia、辉瑞制药、西门子、CCTV、中国联通等全球著名企业在内的共25000家企业客户。

点击阅读原文,报名技术沙龙

↓↓↓

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章