Kubernetes 1.32 集群部署:Ubuntu 24.04 双节点 10 分钟快速初始化

📅 2026/7/6 1:52:39
Kubernetes 1.32 集群部署:Ubuntu 24.04 双节点 10 分钟快速初始化
Kubernetes 1.32 集群部署Ubuntu 24.04 双节点 10 分钟快速初始化1. 环境准备与系统配置在开始部署 Kubernetes 1.32 集群之前我们需要确保两台 Ubuntu 24.04 服务器已经完成基础配置。以下是两台节点的推荐配置Master节点2核CPU/4GB内存/50GB存储Worker节点2核CPU/2GB内存/30GB存储首先在两台服务器上执行以下系统配置命令# 禁用交换分区所有节点执行 sudo swapoff -a sudo sed -i / swap / s/^\(.*\)$/#\1/g /etc/fstab # 关闭SELinux如已安装 sudo setenforce 0 sudo sed -i s/^SELINUXenforcing$/SELINUXpermissive/ /etc/selinux/config # 加载内核模块所有节点执行 sudo modprobe overlay sudo modprobe br_netfilter # 配置内核参数 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 sudo sysctl --system提示确保两台服务器之间可以互相ping通且主机名解析正常。可以通过编辑/etc/hosts文件或配置DNS实现。2. 容器运行时安装与配置Kubernetes 1.32 默认使用 containerd 作为容器运行时。以下是安装步骤# 安装containerd所有节点执行 sudo apt-get update sudo apt-get install -y containerd # 生成默认配置文件 sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml # 修改配置文件使用systemd作为cgroup驱动 sudo sed -i s/SystemdCgroup false/SystemdCgroup true/ /etc/containerd/config.toml # 重启并启用containerd sudo systemctl restart containerd sudo systemctl enable containerd验证containerd安装sudo ctr version3. Kubernetes组件安装在所有节点上安装kubeadm、kubelet和kubectl# 添加Kubernetes官方GPG密钥 sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg # 添加Kubernetes APT仓库 echo deb [signed-by/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ / | sudo tee /etc/apt/sources.list.d/kubernetes.list # 安装组件 sudo apt-get update sudo apt-get install -y kubelet1.32.* kubeadm1.32.* kubectl1.32.* sudo apt-mark hold kubelet kubeadm kubectl4. 集群初始化在Master节点上执行初始化命令sudo kubeadm init \ --pod-network-cidr10.244.0.0/16 \ --control-plane-endpoint$(hostname -f) \ --upload-certs \ --image-repositoryregistry.aliyuncs.com/google_containers初始化完成后按照输出提示配置kubectlmkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config5. 网络插件安装我们选择Flannel作为网络插件kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml验证网络插件安装kubectl get pods -n kube-system -l appflannel6. Worker节点加入集群使用Master节点初始化时提供的join命令将Worker节点加入集群sudo kubeadm join master-ip:6443 --token token --discovery-token-ca-cert-hash hash注意如果忘记了join命令可以在Master节点上运行kubeadm token create --print-join-command重新生成。7. 验证集群状态在Master节点上运行以下命令验证集群状态kubectl get nodes -o wide输出应显示两个节点均为Ready状态NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master01 Ready control-plane 5m v1.32.2 192.168.1.10 none Ubuntu 24.04 LTS 6.8.0-31-generic containerd://1.7.0 worker01 Ready none 3m v1.32.2 192.168.1.11 none Ubuntu 24.04 LTS 6.8.0-31-generic containerd://1.7.08. 部署测试应用验证集群功能是否正常kubectl create deployment nginx --imagenginx:latest kubectl expose deployment nginx --port80 --typeNodePort kubectl get svc nginx访问测试应用curl http://node-ip:node-port9. 集群管理技巧9.1 快速重置节点如果初始化过程中出现问题可以使用以下命令重置节点sudo kubeadm reset sudo rm -rf /etc/cni/net.d sudo rm -rf $HOME/.kube/config9.2 常用命令速查表命令描述kubectl cluster-info查看集群信息kubectl get pods -A查看所有命名空间的Podkubectl describe node node-name查看节点详细信息kubectl logs pod-name查看Pod日志kubectl exec -it pod-name -- /bin/bash进入Pod容器9.3 性能优化建议为kubelet配置资源预留sudo vi /var/lib/kubelet/config.yaml添加或修改以下内容systemReserved: cpu: 500m memory: 500Mi kubeReserved: cpu: 500m memory: 500Mi调整containerd资源限制sudo vi /etc/containerd/config.toml在[plugins.io.containerd.grpc.v1.cri.containerd]部分添加sandbox_cpu 500m sandbox_memory 512Mi10. 自动化部署脚本为了简化部署过程可以创建一个自动化脚本k8s-init.sh#!/bin/bash # 系统配置 swapoff -a sed -i / swap / s/^\(.*\)$/#\1/g /etc/fstab setenforce 0 sed -i s/^SELINUXenforcing$/SELINUXpermissive/ /etc/selinux/config # 安装containerd apt-get update apt-get install -y containerd mkdir -p /etc/containerd containerd config default | tee /etc/containerd/config.toml sed -i s/SystemdCgroup false/SystemdCgroup true/ /etc/containerd/config.toml systemctl restart containerd systemctl enable containerd # 安装Kubernetes组件 curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo deb [signed-by/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ / | tee /etc/apt/sources.list.d/kubernetes.list apt-get update apt-get install -y kubelet1.32.* kubeadm1.32.* kubectl1.32.* apt-mark hold kubelet kubeadm kubectl # 仅Master节点执行 if [[ $1 master ]]; then kubeadm init \ --pod-network-cidr10.244.0.0/16 \ --control-plane-endpoint$(hostname -f) \ --upload-certs \ --image-repositoryregistry.aliyuncs.com/google_containers mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml fi使用方式Master节点sudo bash k8s-init.sh masterWorker节点sudo bash k8s-init.sh