查看原文
其他

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

Rancher Labs RancherLabs 2019-12-18

过去一年间,企业对于在边缘设备上管理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.111Warning: 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 theindividual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted 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:~ $


此时,应该重置默认密码


$ passwdChanging 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 unitCreated symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.[INFO] systemd: Starting k3s


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


$ kubectl get nodesNAME STATUS ROLES AGE VERSIONraspberrypi Ready master 27s v1.14.5-k3s.1


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


$ kubectl get deployments --all-namespacesNAMESPACE NAME READY UP-TO-DATE AVAILABLE AGEkube-system coredns 1/1 1 1 3m29skube-system traefik 1/1 1 1 89s


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


$ kubectl get pods --all-namespacesNAMESPACE NAME READY STATUS RESTARTS AGEkube-system coredns-b7464766c-8mgzr 1/1 Running 0 3m12skube-system helm-install-traefik-tqh92 0/1 Completed 0 3m12skube-system svclb-traefik-t6jvz 2/2 Running 0 93skube-system traefik-56688c4464-zvfxc 1/1 Running 0 92s


然后看一下我们的服务:


$ kubectl get service --all-namespacesNAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEdefault kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 4m4skube-system kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 4m5skube-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家企业客户。

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

↓↓↓

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存