基于 GitHub workflows actions CI/CD 自动化编译构建 Kubernetes:linux/loong64 龙芯 CPU 架构

注意事项

  1. 编译构建过程中,需要在 /tmp 产生大量的临时文件,确保空间足够

构建 Kubernetes linux/loong64 二进制

  • 克隆 https://github.com/kubernetes/kubernetes 代码
  • 修改脚本,增加龙芯架构
  • 龙芯 CPU 编译时,直接运行 make 命令即可构建二进制
  • 非龙芯 CPU 交叉编译时,需要安装 gcc-loongarch64-linux-gnu binutils-loongarch64-linux-gnu 之后,才能构建二进制

构建 Kubernetes linux/loong64 Docker 镜像所需镜像

  1. registry.k8s.io/build-image/debian-base-loong64:bookworm-v1.0.6linux/loong64 架构。源码地址 release/images/build/debian-base at master · kubernetes/release · GitHub ,源码不支持 linux/loong64 架构
  2. registry.k8s.io/build-image/go-runner:v2.4.0-go1.26.2-bookworm.0linux/loong64 架构。源码地址 release/images/build/go-runner at master · kubernetes/release · GitHub ,源码不支持 linux/loong64 架构
  3. 准备好上述 linux/loong64 镜像后,即可使用 make release-in-a-container 进行构建,得到二进制与 Docker 镜像

构建进度

任务名称 构建进度 仓库 说明
kubernetes-cni 二进制:
bandwidth
bridge
dhcp
dummy
firewall
host-device
host-local
ipvlan
loopback
macvlan
portmap
ptp
sbr
static
tap
tuning
vlan
vrf
:white_check_mark: kubernetes-loong64/plugins-loong64
Kubernetes 构建时所需基础镜像:
registry.k8s.io/build-image/go-runner:v2.4.0-go1.26.2-bookworm.0
registry.k8s.io/build-image/distroless-iptables:v0.9.1
registry.k8s.io/build-image/debian-base-loong64:bookworm-v1.0.6
registry.k8s.io/build-image/setcap:bookworm-v1.0.6
:white_check_mark: kubernetes-loong64/release-loong64 kubernetesloong64/go-runner:v0.21.1
kubernetesloong64/distroless-iptables:v0.21.1
kubernetesloong64/debian-base-loong64:v0.21.1
kubernetesloong64/setcap:v0.21.1
Kubernetes 二进制:
apiextensions-apiserver
ginkgo
go-runner
kube-aggregator
kube-apiserver
kube-controller-manager
kube-log-runner
kube-proxy
kube-scheduler
kubeadm
kubectl-convert
kubectl
kubelet
kubemark
mounter
:white_check_mark: kubernetes-loong64/kubernetes-loong64 kubernetes-loong64/kubernetes-loong64/releases
cri-tools 二进制:
crictl
critest
:white_check_mark: kubernetes-loong64/cri-tools-loong64
registry.k8s.io/pause:3.10.2 :white_check_mark: kubernetes-loong64/kubernetes-loong64 kubernetesloong64/pause:3.10.2
registry.k8s.io/kube-apiserver:v1.36.1
registry.k8s.io/kube-controller-manager:v1.36.1
registry.k8s.io/kube-scheduler:v1.36.1
registry.k8s.io/kube-proxy:v1.36.1
:white_check_mark: kubernetes-loong64/kubernetes-loong64 kubernetesloong64/kube-apiserver:v1.36.1
kubernetesloong64/kube-controller-manager:v1.36.1
kubernetesloong64/kube-scheduler:v1.36.1
kubernetesloong64/kube-proxy:v1.36.1
registry.k8s.io/etcd:3.6.8-0 :white_check_mark: kubernetes-loong64/etcd-loong64 kubernetesloong64/etcd:v3.6.8-0
registry.k8s.io/coredns/coredns:v1.14.2 :white_check_mark: kubernetes-loong64/coredns-loong64 kubernetesloong64/coredns:v1.14.2
containerd 二进制 :white_check_mark: kubernetes-loong64/containerd-loong64
runc 二进制 :white_check_mark: kubernetes-loong64/runc-loong64
docker 二进制(可选) :white_check_mark: kubernetes-loong64/cli-loong64
dockerddocker-proxy 二进制(可选) :white_check_mark: kubernetes-loong64/moby-loong64
docker-init 二进制(可选) :white_check_mark: kubernetes-loong64/tini-loong64

Kubernetes 所需 基础 Docker 镜像

[root@anolis-23-0 ~]# kubeadm config images list
registry.k8s.io/kube-apiserver:v1.36.1
registry.k8s.io/kube-controller-manager:v1.36.1
registry.k8s.io/kube-scheduler:v1.36.1
registry.k8s.io/kube-proxy:v1.36.1
registry.k8s.io/coredns/coredns:v1.14.2
registry.k8s.io/pause:3.10.2
registry.k8s.io/etcd:3.6.8-0
[root@anolis-23-0 ~]# 

对应源码地址

支持龙芯 CPU 社区 Debian Docker 镜像

setcap 需要的 CPU 架构和当前宿主机系统保持一致