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

基于kubeadm创建Kubernetes v1.34.1集群

基于kubeadm创建Kubernetes v1.34.1集群

Ubuntu 22.04 + containerd + Calico + IPVS 从零开始详细教程

欢迎来到最全面的Kubernetes集群安装指南!本文将手把手教你使用kubeadm部署一个生产可用的Kubernetes v1.34.1集群,底层容器运行时采用Ubuntu 22.04 配置containerd,网络插件选用Calico,并启用IPVS模式以提升服务性能。无论你是运维小白还是开发人员,都能通过本文成功搭建属于自己的K8s环境。

1. 环境准备

我们使用三台Ubuntu 22.04服务器(一台master,两台node)。开始前请确保所有节点满足以下条件:

  • 操作系统:Ubuntu 22.04 LTS(已更新至最新)
  • 硬件:至少2核CPU,2GB内存(master建议4GB)
  • 网络:节点之间互通,能够访问互联网
  • 关闭swap:sudo swapoff -a 并注释/etc/fstab中的swap行
  • 设置主机名、hosts解析,确保时间同步

2. 安装容器运行时 containerd

作为Ubuntu 22.04 配置containerd的关键步骤,我们需要安装并配置containerd以适配Kubernetes。执行以下命令:

# 安装依赖sudo apt updatesudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates# 添加Docker官方GPG密钥并安装containerdcurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpgsudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"sudo apt updatesudo apt install -y containerd.io# 生成默认配置文件sudo mkdir -p /etc/containerdcontainerd config default | sudo tee /etc/containerd/config.toml# 修改配置,使用systemd cgroup驱动sudo sed -i "s/SystemdCgroup = false/SystemdCgroup = true/" /etc/containerd/config.toml# 重启containerdsudo systemctl restart containerdsudo systemctl enable containerd

3. 安装 kubeadm、kubelet、kubectl

这是kubeadm部署的核心环节。我们将从Kubernetes官方APT仓库安装指定版本(v1.34.1)。

# 添加Kubernetes GPG密钥和仓库curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.34/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpgecho "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.34/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list# 安装kubeadm、kubelet、kubectl(锁定版本)sudo apt updatesudo apt install -y kubelet=1.34.1-* kubeadm=1.34.1-* kubectl=1.34.1-*sudo apt-mark hold kubelet kubeadm kubectl

4. 使用 kubeadm 初始化集群并启用 IPVS

在master节点上执行初始化命令。我们指定Pod网段为10.244.0.0/16(Calico默认),并通过配置文件启用IPVS模式。

# 创建kubeadm配置文件(例如 kubeadm-config.yaml)cat <

初始化完成后,会输出加入集群的命令,请保存好用于node节点加入。

5. 安装 Calico 网络插件

Calico是功能强大的CNI插件,支持网络策略。我们直接应用官方manifest:

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

等待所有calico Pod变为Running:kubectl get pods -n kube-system -w

基于kubeadm创建Kubernetes v1.34.1集群 Kubernetes集群安装  kubeadm部署 Ubuntu 22.04 containerd Calico IPVS 第1张

6. 验证集群及 IPVS 模式

节点加入后,在master查看节点状态:

kubectl get nodeskubectl get pods -A

确认所有节点Ready。然后检查kube-proxy是否运行在IPVS模式:

kubectl logs -n kube-system -l k8s-app=kube-proxy --tail=20 | grep "Using ipvs Proxier"

如果输出包含“Using ipvs Proxier”,则说明Calico IPVS配置成功。

7. 部署测试应用

最后,我们运行一个nginx服务验证集群功能:

kubectl create deployment nginx --image=nginxkubectl expose deployment nginx --port=80 --type=NodePortkubectl get svc

通过任意节点IP+NodePort即可访问nginx。

总结

至此,你已经成功完成了Kubernetes集群安装的全过程,涉及kubeadm部署Ubuntu 22.04 配置containerd、以及Calico IPVS网络模式。本教程尽量详尽,希望对你有所帮助。后续可以继续探索Kubernetes的丰富功能!