编译mips64le版k3s

本文档详述了在Loongson-3A3000处理器上的NeoKylin7 server系统中,如何编译mips64le版本的k3s 1.18.19。由于官方不支持mips环境,作者通过直接编译方法,克服了缺少mips Docker镜像和依赖问题,最终成功编译出41MB的k3s。文章中分享了编译k3s-root和解决编译过程中遇到的问题的步骤,以及所需资源的网盘链接。
摘要由CSDN通过智能技术生成

前言

首先说明,本人使用的mips环境,处理器是Loongson-3A3000,系统是NeoKylin7 server。所有包的构建都是在这个环境下进行,由于没有其他mips环境,并不能保证其他mips环境能行。
由于业务需求,本人需要编译mips64le环境下的k3s 1.18.19版本。网上查了查,官方提供了编译方法,但是并不支持mips环境。mips环境下,只找到用go build直接编译的方法。于是尝试了一下,go build直接编译出来的k3s有200MB(官方的k3s只有40-60MB),这大小差了很多。那么这个k3s能不能用呢?能用,但是如果没安装kubernets-cni并将local-host放到PATH中的话,会报错。而且这个k3s别看他有200MB,但是helm, containerd等都没包含进去。如果这些你都无所谓,那么可以不用往下看了。直接用mips的golang go build使用就可以。但是如果你和我一样觉得很不爽,觉得这不是完整的k3s,可以继续往下。

准备

首先是编译mips版本k3s的前期准备工作,你需要一个mips的环境,以及mips的golang。如何从源码编译mips版本的golang,这里不多赘述,网上教程很多。如果你不想自己编译,也可以用我编译好的golang 1.16.5,链接放在文末。
除了golang的环境,还要对应k3s版本的源码,下载至mips环境,并解压。 解压后的k3s源码目录大致如下:

e2e          LICENSE    README.md
build         docker-compose.yml          etc          main.go    scripts
BUILDING.md   Dockerfile.dapper           go.mod       Makefile   tests
channel.yaml  Dockerfile.manifest         go.sum       manifests  Vagrantfile
cmd           Dockerfile.test.dapper      install.sh   package    vendor
contrib       Dockerfile.test.mod.dapper  k3s.service  pkg        vendor.go

按照官方的编译教程,在这个地方直接执行mkdir -p build/data && ./scripts/download && go generate然后再执行make就能编译出完整的k3s,but! mips环境不可以,因为执行make后是在docker容器中进行的编译工作,而Dockerfile.dapper中使用的ubuntu镜像,没有mips版。那么既然这个镜像不行,用mips版的其他镜像不就可以了?于是我去查了查,发现有mips版的Debian镜像和golang镜像,于是我开心的不得了,把Dockerfile进行了修改,并且发现他确实能make, but!! 还是不行。因为Debian镜像中缺少了一些依赖安装不了,并且编译过程会卡住。尝试多次无果后,我放弃了。
既然镜像编译不行,难道就真的没办法了吗? no no no, 我以前编译k8s的时候,是可以在本地进行编译的,所以为啥不直接不使用镜像,在本地编译k3s。所以我打算本地编译,在编译前先执行

mkdir -p build/data && ./scripts/download 
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值