RISC-V公测平台发布·如何在SG2042上玩转k3s

前言
kubernetes是一个开源的容器管理平台,通过kubernetes的跨集群管理功能,用户可以方便地进行应用程序的复制、迁移和跨云平台的部署。
而k3s作为kubernetes的轻量级发行版,相比传统的kubernetes具有更小的二进制文件大小和更低的资源消耗。
使用 k3s 不仅能够缩短启动集群的时间,还能够减少集群需要消耗的资源。是risc-v软件生态中不可或缺的一部分。
接下来就将教大家如何在sg2042上玩转k3s。
一、本次实验材料
1. 一台sg2042服务器
2. 已经预先编译好的k3s
已预先编译的k3s二进制文件下载
https://github.com/carv-ics-forth/k3s/releases
二、实验过程
1. 下载、运行k3s
首先我们下载预先编译好的k3s包:
由于预编译好的k3s包已被分为三个文件,因此需要将三个文件合并为一个文件
解压,并给k3s-riscv64文件添加运行权限:
测试该文件是否能运行,如果出现说明,那就说明成功运行。
将k3s-riscv64文件复制到/usr/local/bin/下,并更名为k3s
注意:不要忘记加上sudo,否则会提示没有权限。
再次测试,看看k3s是否能运行:
2. 下载、运行k3s安装脚本
当然只有k3s二进制文件是不够的,因此我们还需要使用安装脚本以获得完整的k3s体验。
下载k3s安装脚本:
curl -sfl
https://get.k3s.io > k3s-install.sh
运行该脚本:
chmod +x k3s-install.sh  
注意,如果直接./k3s-install.sh,会提示不支持的架构,因此需要把前面的参数带上。
install_k3s_exec=server --disable metrics-server install_k3s_skip_download=true bash -x ./k3s-install.sh  
查看状态,如提示active那就说明k3s正在运行:
systemctl status k3s  
3.运行k3s容器
新建hello-sg2042.yaml打开并往里面复制以下内容:
改自:
https://raw.githubusercontent.com/carv-ics-forth/kubernetes-riscv64/main/examples/hello-kubernetes.yaml
apiversion: v1kind: servicemetadata: name: hellospec: type: clusterip ports: - port: 8080 selector: app: hello---apiversion: apps/v1kind: deploymentmetadata: name: hellospec: replicas: 1 selector: matchlabels: app: hello template: metadata: labels: app: hello spec: containers: - name: hello-kubernetes image: carvicsforth/hello-kubernetes:1.10.1 env: - name: message value: greeting from sg2042!  
保存退出后使用该模板启动一个新的容器:
sudo kubectl apply -f hello-sg2042.yaml  
注意:不要忘记sudo,不然就会提示没有权限!
查看pods情况:
sudo kubectl get pods -o wide  
(如果看到pod还没显示ip地址,你可以耐心等一会,直到显示pod的ip地址)
使用curl拉取网页,如果拉取到网页,那就说明k3s容器运行成功:
4.开放外部计算机访问
虽然本机可以通过curl访问,但是外部计算机访问不了,那如何让外部计算机访问该网页呢?
这就需要修改hello-sg2042.yaml中的内容了,用编辑器打开hello-sg2042.yaml,然后按照以下内容修改:
apiversion: v1kind: servicemetadata: name: hellospec: type: nodeport ports: - port: 8080 targetport: 8080 nodeport: 30080 protocol: tcp selector: app: hello---apiversion: apps/v1kind: deploymentmetadata: name: hellospec: replicas: 1 selector: matchlabels: app: hello template: metadata: labels: app: hello spec: containers: - name: hello-kubernetes image: carvicsforth/hello-kubernetes:1.10.1 env: - name: message value: greeting from sg2042!  
注意:nodeport可以自行修改你想要的,但是只能在30000-32767里选一个。
在浏览器中访问http://175.8.161.253:30080(如果用的是你自己的端口号,请将30080改成你当时设置的nodeport)即可。
三、实验总结:
得益于社区的帮助,k3s已经可以运行在sg2042平台上,但是由于该fork并未并入k3s官方代码,因此k3s目前未正式支持riscv64。
参考资料:
kubernetes-riscv64下的运行指南
https://github.com/carv-ics-forth/kubernetes-riscv64#running
《risc-v公测平台发布》系列文章会持续跟大家分享澎峰risc-v生态圈的开发者朋友们在risc-v平台的移植测试成果,目前已发布:1. 
risc-v公测平台发布 · stream带宽完整测试
2. risc-v公测平台发布 · 我的世界mohistmc
3. risc-v公测平台发布 · 第一个web server“hello risc-v world!”
4. risc-v公测平台发布 · 如何在sg2042上玩转k3s(本篇)
未来计划发布:
1. risc-v公测平台发布 · 第一个blog serverrisc-v成长日记”


环路滤波器参数如何设置?如何设置滤波器的截止频率呢?
再流焊工艺中有铅焊料焊接有铅和无铅元器件的混装工艺
IR公司推出全新1200V超高速绝缘栅双极晶体管
磁盘阵列的常见故障
使用手摇式兆欧表检测室内供电线路的绝缘电阻的方法
RISC-V公测平台发布·如何在SG2042上玩转k3s
realme将推出搭载骁龙888 5G移动平台的旗舰5G手机“Race”
电路防护方案设计整改的措施
OPPOR11什么时候上市?OPPOR11最新消息:这款神器是冲着冠军王座去的!
配电变压器经常损坏的原因和解决方案
北京西城展览路街道引入先进的道路检测专用探地雷达
关于直流电动汽车充电的大功率解决方案
固体氧化物电池的原理及系统结构
轻松部署Windows 2003的DHCP服务
AutoCAD WS快速使用指南
嫌华为mate10保时捷版太贵,荣耀v10马上就来,超高性价比
苹果凭什么成为TWS耳机市场唯一的赢家?
岭澳核电站1号机组连续安全运行天数创造最高纪录
如何降低焊接机器人在使用中的故障率
水下超声波测距避障传感器方案介绍