前提
amd64、arm64一键安装:https://k8s-sh.xuxiaowei.com.cn
已经提前安装了 containerd:LoongArch64 (loong64) 龙芯架构:安装 containerd、docker 话题列表
从 Kubernetes 1.24.0 开始,容器运行时默认不再使用 docker,而是使用 containerd
相关文章
查看系统版本
cat /etc/os-release
[root@anolis ~]# cat /etc/os-release
NAME="Anolis OS"
VERSION="23.4"
ID="anolis"
VERSION_ID="23.4"
PLATFORM_ID="platform:an23"
PRETTY_NAME="Anolis OS 23.4"
ANSI_COLOR="0;31"
HOME_URL="https://openanolis.cn/"
BUG_REPORT_URL="https://bugzilla.openanolis.cn/"
[root@anolis ~]#
查看系统内核
uname -a
[root@anolis ~]# uname -a
Linux anolis 6.6.102-5.3.3.an23.loongarch64 #1 SMP Tue May 26 14:00:16 CST 2026 loongarch64 loongarch64 loongarch64 GNU/Linux
[root@anolis ~]#
前期环境准备
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
关闭交换空间
swapoff -a
sudo sed -i 's/.*swap.*/#&/' /etc/fstab
网络配置
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
创建文件夹
此文件夹用于存放下载的 rpm 包、配置文件等
后续执行的命令,均在此文件夹下
mkdir kubernetes-v1.30.1
cd kubernetes-v1.30.1
下载 rpm 包
curl -LO https://cloud.loongnix.cn/releases/loongarch64/kubernetes/kubernetes/v1.30.1/cri-tools-1.30.1-0.loongarch64.rpm
curl -LO https://cloud.loongnix.cn/releases/loongarch64/kubernetes/kubernetes/v1.30.1/kubeadm-1.30.1-0.loongarch64.rpm
curl -LO https://cloud.loongnix.cn/releases/loongarch64/kubernetes/kubernetes/v1.30.1/kubectl-1.30.1-0.loongarch64.rpm
curl -LO https://cloud.loongnix.cn/releases/loongarch64/kubernetes/kubernetes/v1.30.1/kubelet-1.30.1-0.loongarch64.rpm
curl -LO https://cloud.loongnix.cn/releases/loongarch64/kubernetes/kubernetes/v1.30.1/kubernetes-cni-1.4.0-0.loongarch64.rpm
安装 rpm 包
yum install *.rpm
设置 kubelet 开机自动启动
systemctl enable kubelet.service
查看所需默认镜像
kubeadm config images list --kubernetes-version=v1.30.1
[root@anolis kubernetes-v1.30.1]# kubeadm config images list --kubernetes-version=v1.30.1
registry.k8s.io/kube-apiserver:v1.30.1
registry.k8s.io/kube-controller-manager:v1.30.1
registry.k8s.io/kube-scheduler:v1.30.1
registry.k8s.io/kube-proxy:v1.30.1
registry.k8s.io/coredns/coredns:v1.11.1
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.12-0
[root@anolis kubernetes-v1.30.1]#
查看所需龙蜥镜像
kubeadm config images list --image-repository=lcr.loongnix.cn/kubernetes --kubernetes-version=v1.30.1
[root@anolis kubernetes-v1.30.1]# kubeadm config images list --image-repository=lcr.loongnix.cn/kubernetes --kubernetes-version=v1.30.1
lcr.loongnix.cn/kubernetes/kube-apiserver:v1.30.1
lcr.loongnix.cn/kubernetes/kube-controller-manager:v1.30.1
lcr.loongnix.cn/kubernetes/kube-scheduler:v1.30.1
lcr.loongnix.cn/kubernetes/kube-proxy:v1.30.1
lcr.loongnix.cn/kubernetes/coredns:v1.11.1
lcr.loongnix.cn/kubernetes/pause:3.9
lcr.loongnix.cn/kubernetes/etcd:3.5.12-0
[root@anolis kubernetes-v1.30.1]#
拉取所需龙蜥镜像
此处为提前执行
kubeadm config images pull --image-repository=lcr.loongnix.cn/kubernetes --kubernetes-version=v1.30.1
修改 containerd 配置
sudo sed -i "s#SystemdCgroup = false#SystemdCgroup = true#g" /etc/containerd/config.toml
NEW_PAUSE=$(kubeadm config images list --image-repository=lcr.loongnix.cn/kubernetes --kubernetes-version=v1.30.1 | grep pause | head -1)
sed -i.bak "s|sandbox = '.*'|sandbox = '$NEW_PAUSE'|" /etc/containerd/config.toml
echo "Updated sandbox to: $NEW_PAUSE"
systemctl restart containerd.service
创建 Kubernetes 初始化配置文件
下列配置中,有部分环境变量不存在,说明此处并不涉及。
有需要再更新环境变量
kubernetes_version=v1.30.1
kubernetes_images=lcr.loongnix.cn/kubernetes
kubeadm_apiVersion=$(kubeadm config print init-defaults | head -n 1)
cat <<EOF | sudo tee kubeadm-config.yaml
$kubeadm_apiVersion
kind: ClusterConfiguration
kubernetesVersion: $kubernetes_version
$control_plane_endpoint
$caCertificateValidityPeriod
$certificateValidityPeriod
imageRepository: $kubernetes_images
networking:
dnsDomain: cluster.local
$service_cidr
$pod_network_cidr
EOF
初始化 Kubernetes
--node-name=:指定节点名称
kubeadm init --node-name=k8s-1 --config=kubeadm-config.yaml
创建 kubectl 配置文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
查看 Kubernetes 节点信息
kubectl get node -o wide
[root@anolis kubernetes-v1.30.1]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-1 NotReady control-plane 61s v1.30.1 192.168.103.23 <none> Anolis OS 23.4 6.6.102-5.3.3.an23.loongarch64 containerd://2.3.1
[root@anolis kubernetes-v1.30.1]#
查看 pod 信息
kubectl get pod -o wide -A
[root@anolis kubernetes-v1.30.1]# kubectl get pod -o wide -A
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-7d9c65d499-mgtqz 0/1 Pending 0 89s <none> <none> <none> <none>
kube-system coredns-7d9c65d499-x6294 0/1 Pending 0 89s <none> <none> <none> <none>
kube-system etcd-k8s-1 1/1 Running 0 90s 192.168.103.23 k8s-1 <none> <none>
kube-system kube-apiserver-k8s-1 1/1 Running 0 90s 192.168.103.23 k8s-1 <none> <none>
kube-system kube-controller-manager-k8s-1 1/1 Running 0 90s 192.168.103.23 k8s-1 <none> <none>
kube-system kube-proxy-4shfb 1/1 Running 0 89s 192.168.103.23 k8s-1 <none> <none>
kube-system kube-scheduler-k8s-1 1/1 Running 0 90s 192.168.103.23 k8s-1 <none> <none>
[root@anolis kubernetes-v1.30.1]#