Bootstrap

中标麒麟部署k8sV1.31版本详细步骤

在中标麒麟操作系统上部署 Kubernetes v1.31 的详细步骤如下。这些步骤假定您对 Kubernetes 和 Linux 环境有基本了解,并且中标麒麟系统已正确安装并配置。

环境准备

更新系统并安装必要的软件包

sudo yum update -ysudo yum install -y wget curl vim net-tools firewalld
#关闭 SELinuxsudo setenforce 0sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#关闭 Swapsudo swapoff -asudo sed -i '/swap/d' /etc/fstab
#配置防火墙 打开必要的端口:sudo firewall-cmd --permanent --add-port=6443/tcpsudo firewall-cmd --permanent --add-port=2379-2380/tcpsudo firewall-cmd --permanent --add-port=10250-10252/tcpsudo firewall-cmd --permanent --add-port=30000-32767/tcpsudo firewall-cmd --reload
#同步时间sudo yum install -y chronysudo systemctl enable chronyd --nowsudo chronyc sources

安装容器运行时

以 Containerd 为例:

安装 Containerd​​​​​​​

sudo yum install -y containerd#配置 Containerd 创建或编辑 /etc/containerd/config.toml:sudo containerd config default > /etc/containerd/config.tomlsudo systemctl enable containerd --now

加载必要的内核模块​​​​​​​

cat <<EOF | sudo tee /etc/modules-load.d/k8s.confoverlaybr_netfilterEOF
sudo modprobe overlaysudo modprobe br_netfilter

设置系统参数​​​​​​​

cat <<EOF | sudo tee /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1EOF
sudo sysctl --system

安装 Kubernetes

添加 Kubernetes 软件源​​​​​​​

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpgEOF

安装 kubeadm、kubelet 和 kubectl​​​​​​​

sudo yum install -y kubelet kubeadm kubectlsudo systemctl enable kubelet --now
#配置 cgroup 驱动 确保 Containerd 和 Kubernetes 使用相同的 cgroup 驱动: 编辑 /etc/containerd/config.toml,确保 SystemdCgroup 设置为 true:toml[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]  SystemdCgroup = true
然后重启 containerd:sudo systemctl restart containerd

初始化 Kubernetes 集群

在 /var/lib/kubelet/config.yaml 确保 cgroupDriver 为 systemd。初始化主节点​​​​​​​

sudo kubeadm init --pod-network-cidr=10.244.0.0/16
#初始化成功后,按照提示执行以下命令:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

部署网络插件 以 Flannel 为例:

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

加入工作节点 在工作节点上执行主节点输出的 kubeadm join 命令,例如:

sudo kubeadm join 192.168.1.100:6443 --token <your-token> --discovery-token-ca-cert-hash sha256:<your-hash>

验证安装

查看节点状态​​​​​​​

kubectl get nodes
#测试部署一个应用kubectl create deployment nginx --image=nginxkubectl expose deployment nginx --port=80 --type=NodePortkubectl get pods,svc

通过访问工作节点的 IP 和分配的端口测试服务。

注意事项

中标麒麟兼容性 确保中标麒麟的内核版本满足 Kubernetes 的最低要求(建议内核版本 >= 4.19)。软件版本匹配 使用 kubeadm config images list 确保镜像版本与 Kubernetes v1.31 的要求匹配。离线部署 如果是离线环境,请提前下载所需的容器镜像和软件包。如需进一步优化或调整配置,可以根据具体需求继续深入。

;