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

Ubuntu 22.04 搭建 Kubernetes 集群全攻略(从零开始部署 K8s 环境与 Web 项目实战)

Ubuntu 22.04 搭建 Kubernetes 集群全攻略(从零开始部署 K8s 环境与 Web 项目实战)

本文关键词:Ubuntu 22.04 K8s 集群、Kubeadm 安装教程、Kubernetes 项目部署、Linux 虚拟机 K8s 环境

在云计算时代,掌握 Kubernetes (K8s) 已经成为开发和运维人员的必备技能。本文将详细介绍如何在 Ubuntu 22.04 虚拟机上,从零开始搭建一个功能完备的 K8s 集群,并演示如何部署一个 Nginx 项目。

Ubuntu 22.04 搭建 Kubernetes 集群全攻略(从零开始部署 K8s 环境与 Web 项目实战) 集群  Kubeadm 安装教程 项目部署 Linux 虚拟机 环境 第1张

一、环境初始化准备

首先,我们需要对 Ubuntu 22.04 系统进行基础配置,以满足 K8s 的运行要求。

  • 关闭 Swap 分区:K8s 要求必须关闭交换分区以保证性能稳定。
  • 配置主机名:方便集群节点间相互识别。
  • 开启内核转发:确保容器间网络互通。
# 关闭 Swapsudo swapoff -asudo sed -i "/swap/d" /etc/fstab# 修改主机名sudo hostnamectl set-hostname k8s-master

二、安装 Containerd 容器运行时

从 K8s 1.24 版本开始,官方弃用了 DockerShim。我们现在通常使用 Containerd 作为底层容器运行时。

sudo apt updatesudo apt install -y containerd# 生成并配置默认文件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 containerd

三、安装 Kubeadm, Kubelet 和 Kubectl

这三个工具是搭建集群的核心:Kubeadm 用于初始化集群,Kubelet 负责节点同步,Kubectl 是管理工具。

# 添加密钥与软件源curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/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.28/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 初始化主节点,并安装 Calico 网络插件。

# 初始化 Mastersudo kubeadm init --pod-network-cidr=192.168.0.0/16# 配置本地访问权限mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

五、部署 Web 项目实战

集群搭建完毕后,我们部署一个 Nginx Web 项目来验证集群是否工作正常。

# 1. 创建 Nginx 部署kubectl create deployment my-nginx --image=nginx# 2. 暴露服务端口kubectl expose deployment my-nginx --port=80 --type=NodePort# 3. 查看运行状态kubectl get pods,svc

总结:通过以上步骤,你已经在 Ubuntu 22.04 上成功构建了 K8s 集群。这为你后续学习微服务架构和云原生开发打下了坚实的基础。