kubernetes1.29.0 使用手册

本文介绍龙芯架构上1.29.0 kubernetes的使用方法,在欧拉2403、loongnix-server23、anolisos23系统上使用方法一致,这里以openeuler24.03系统为例进行部署。

环境准备

使用欧拉2403两台虚拟机部署。

设置主机名

两台机器: Master节点命名为k8s-master Worker节点命名为k8s-node

hostnamectl set-hostname k8s-master #在Master节点机器上执行
hostnamectl set-hostname k8s-node   #在Worker节点机器上执行

关闭SElinux

在k8s-master和k8s-node两台机器上执行:

setenforce 0

禁用防火墙

在k8s-master和k8s-node两台机器上执行:

systemctl stop firewalld.service
systemctl disable firewalld.service

关闭swap

在k8s-master和k8s-node两台机器上执行:

swapoff -a
sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab

清理iptables

iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z

host解析文件配置

在k8s-master和k8s-node两台机器上执行:

cat >>/etc/hosts<< EOF
Master节点机器IP   k8s-master
Worker节点机器IP   k8s-node
EOF

注:将指令中Master/Worker IP修改为自己节点的IP

转发IPv4

在k8s-master和k8s-node两台机器上执行:

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# 设置所需的 sysctl 参数,参数在重新启动后保持不变:
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# 应用 sysctl 参数而不重新启动:
sudo sysctl --system

通过运行以下指令确认 br_netfilter 和 overlay 模块被加载:

lsmod | grep br_netfilter
lsmod | grep overlay

通过运行以下指令确认 net.bridge.bridge-nf-call-iptables、net.bridge.bridge-nf-call-ip6tables 和 net.ipv4.ip_forward 系统变量在你的 sysctl 配置中被设置为 1:

sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward

安装containerd

在k8s-master和k8s-node两台机器上执行以下操作。

下载 containerd 压缩包:

wget https://github.com/Loongson-Cloud-Community/containerd/releases/download/v1.7.13/containerd-1.7.13-static-abi2.0-bin.tar.gz
tar -xf containerd-1.7.13-static-abi2.0-bin.tar.gz
mv containerd-1.7.13-static-abi2.0-bin/* /usr/local/bin/

生成默认配置文件:

mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml

下载 containerd.service 文件:

wget -O /usr/lib/systemd/system/containerd.service https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
systemctl daemon-reload
systemctl enable --now containerd

结合 runc 使用 systemd cgroup 驱动,在 /etc/containerd/config.toml 中设置:

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
  ...
  [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
    SystemdCgroup = true

在 /etc/containerd/config.toml中重载沙箱(pause)镜像:

[plugins."io.containerd.grpc.v1.cri"]
  sandbox_image = "lcr.loongnix.cn/kubernetes/pause:3.9"

一旦更新了这个配置文件,需要重启 containerd:systemctl restart containerd

安装runc

在k8s-master和k8s-node两台机器上执行:

wget https://github.com/Loongson-Cloud-Community/runc/releases/download/v1.1.12/runc-seccomp-1.1.12-abi2.0-bin.tar.gz
tar -xf runc-seccomp-1.1.12-abi2.0-bin.tar.gz
mv runc-seccomp-1.1.12-abi2.0-bin/runc-static /usr/local/bin/runc

安装rpm包

在k8s-master和k8s-node两台机器上执行:

mkdir -p /tmp/rpms
cd /tmp/rpms
wget http://cloud.loongnix.cn/releases/loongarch64/kubernetes/kubernetes/v1.29.0/cri-tools-1.29.0-0.loongarch64.rpm
wget http://cloud.loongnix.cn/releases/loongarch64/kubernetes/kubernetes/v1.29.0/kubeadm-1.29.0-0.loongarch64.rpm
wget http://cloud.loongnix.cn/releases/loongarch64/kubernetes/kubernetes/v1.29.0/kubectl-1.29.0-0.loongarch64.rpm
wget http://cloud.loongnix.cn/releases/loongarch64/kubernetes/kubernetes/v1.29.0/kubelet-1.29.0-0.loongarch64.rpm
wget http://cloud.loongnix.cn/releases/loongarch64/kubernetes/kubernetes/v1.29.0/kubernetes-cni-1.3.0-0.loongarch64.rpm
yum install -y ./*.rpm

配置crictl

在k8s-master和k8s-node两台机器上执行:

cat <<EOF|tee /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
EOF

kubeadm初始化集群

在k8s-master机器上执行:

kubeadm init \
--image-repository lcr.loongnix.cn/kubernetes \
--kubernetes-version v1.29.0 \
--cri-socket=/run/containerd/containerd.sock \
--pod-network-cidr=10.244.0.0/16 -v=5

成功后根据提示配置:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

加入node

在k8s-node机器上执行:

kubeadm join Master_Node_IP:6443 --token wngmgg.sxr4n542r4y4pji7 \
    --discovery-token-ca-cert-hash sha256:a0a15138d3d2149c3cca6e6fc9ead95439e00f60fda314d9cef31ff1a6baa461

添加网络插件

在k8s-master机器上执行:

wget https://github.com/Loongson-Cloud-Community/calico/releases/download/v3.26.1/calico.yaml

yaml文件中的CALICO_IPV4POOL_CIDR字段需要与初始化时的pod-network-cidr一致,修改后执行:

kubectl apply -f calico.yaml

查看node状态

在k8s-node机器上执行:

kubectl get nodes -o wide
NAME         STATUS   ROLES           AGE     VERSION
k8s-master   Ready    control-plane   2d20h   v1.29.0
k8s-node     Ready    <none>          3m55s   v1.29.0

在master查看服务运行状态

在k8s-master机器上执行:

[root@k8s-master ~]# crictl ps -a         
CONTAINER         IMAGE             CREATED          STATE          NAME                      ATTEMPT          POD ID              POD

a7d8d059e8e02     2871df61a54d6     2 days ago       Running         kube-controller-manager   0               f3a3c8407b728       kube-controller-manager-k8s-master
d63237c7aac98     a7e10853f9188     2 days ago       Running         kube-scheduler            0               71073e48c9784       kube-scheduler-k8s-master
1bd194a81bce9     2825abb18f823     2 days ago       Running         kube-apiserver            0               07924775c0d04       kube-apiserver-k8s-master
5803d8045cce8     8e9ab6a2962af     2 days ago       Running         etcd                      0               2d9c7fa539f94       etcd-k8s-master
8e97dc40d64cb     8906c2ada14aa     3 days ago       Running         calico-node               0               7f4bdb53da150       calico-node-gmw54
2ff2535a30694     ffbde5bcb96c4     3 days ago       Running         kube-proxy                0               fc6762b89b59a       kube-proxy-rr4bx
©龙芯开源社区 all right reserved,powered by Gitbook文档更新时间: 2026-09-28 17:37:14

results matching ""

    No results matching ""

    results matching ""

      No results matching ""