当前位置:首页 > 系统教程 > 正文

Kubernetes集群构建全攻略(基于kubeadm v1.34.1在Ubuntu 22.04上部署containerd与Calico网络)

Kubernetes集群构建全攻略(基于kubeadm v1.34.1在Ubuntu 22.04上部署containerd与Calico网络)

一个详细的小白友好教程,涵盖从零开始搭建高性能Kubernetes集群

Kubernetes集群构建全攻略(基于kubeadm v1.34.1在Ubuntu 22.04上部署containerd与Calico网络) Kubernetes  kubeadm containerd Calico 第1张

欢迎阅读本教程!我们将一步步指导你使用kubeadm工具创建Kubernetes v1.34.1集群。本教程专为初学者设计,环境基于Ubuntu 22.04,使用containerd作为容器运行时,Calico作为网络插件,并配置IPVS以实现负载均衡。通过本指南,你将掌握集群部署的核心技能,并理解关键组件的作用。

前置条件

在开始之前,请确保满足以下条件:

  • 至少两台运行Ubuntu 22.04的机器(一台主节点,一台工作节点),建议配置2GB以上RAM和2核CPU。
  • 所有机器网络互通,并已设置静态IP或DHCP。
  • 拥有root或sudo权限。
  • 关闭交换空间:sudo swapoff -a,并编辑/etc/fstab注释掉swap行。
  • 确保防火墙允许必要端口(如6443、2379-2380等)。

步骤1:安装和配置containerd

containerd是一个轻量级容器运行时,我们将用它替代Docker。首先,更新系统包:

    sudo apt updatesudo apt upgrade -y  

安装containerd:

    sudo apt install -y containerd  

生成默认配置文件并启用systemd cgroup驱动(这对Kubernetes兼容性很重要):

    sudo mkdir -p /etc/containerdcontainerd config default | sudo tee /etc/containerd/config.tomlsudo sed -i "s/SystemdCgroup = false/SystemdCgroup = true/g" /etc/containerd/config.tomlsudo systemctl restart containerdsudo systemctl enable containerd  

步骤2:安装kubeadm、kubelet和kubectl

kubeadm是官方集群部署工具。添加Kubernetes仓库并安装组件:

    sudo apt install -y apt-transport-https curlcurl -fsSL https://pkgs.k8s.io/core:/stable:/v1.34/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpgecho "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.34/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.listsudo apt updatesudo apt install -y kubelet kubeadm kubectlsudo apt-mark hold kubelet kubeadm kubectl  

这确保了kubeadm v1.34.1被安装。启动kubelet:

    sudo systemctl enable kubelet  

步骤3:初始化Kubernetes集群

仅在主节点上运行以下命令。使用kubeadm初始化集群,指定Pod网络CIDR(Calico默认使用192.168.0.0/16):

    sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --kubernetes-version=v1.34.1  

初始化完成后,按照输出提示设置kubectl配置(非root用户):

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

保存加入集群的命令,用于工作节点。例如:kubeadm join <主节点IP>:6443 --token --discovery-token-ca-cert-hash

步骤4:安装Calico网络插件

Calico是一个高性能网络解决方案,支持网络策略。应用Calico清单:

    kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/calico.yaml  

等待Pod就绪:kubectl get pods -n kube-system,应看到calico-* Pod运行。这完成了Kubernetes网络配置。

步骤5:配置IPVS负载均衡

IPVS提供集群内负载均衡,提升性能。首先,在主节点上加载IPVS模块:

    sudo modprobe ip_vssudo modprobe ip_vs_rrsudo modprobe ip_vs_wrrsudo modprobe ip_vs_sh  

编辑kube-proxy配置以使用IPVS模式:

    kubectl edit configmap kube-proxy -n kube-system  

在data.config.conf.mode字段中,将""改为"ipvs",保存退出。重启kube-proxy Pod:

    kubectl rollout restart daemonset kube-proxy -n kube-system  

验证IPVS:sudo ipvsadm -L应显示规则。

步骤6:验证集群

在主节点上运行以下命令检查集群状态:

    kubectl get nodes  # 应显示主节点为Readykubectl get pods -n kube-system  # 所有系统Pod应运行正常  

如果添加了工作节点(使用之前保存的kubeadm join命令),确保节点状态为Ready。现在,你的Kubernetes v1.34.1集群已就绪!

总结

本教程详细介绍了使用kubeadm部署Kubernetes集群的全过程,涵盖Ubuntu 22.04系统设置、containerd安装、Calico网络部署和IPVS配置。通过遵循这些步骤,即使小白也能成功搭建一个生产就绪的集群。后续可探索存储、监控等高级主题。祝你在容器化之旅中顺利!