当前位置:首页 > Ubuntu > 正文

Ubuntu云原生集群部署(从零开始搭建高可用Kubernetes集群)

在当今的云计算时代,Ubuntu云原生集群已成为企业构建现代化应用架构的首选方案。通过将容器技术与自动化编排平台结合,开发者可以更高效地部署、扩展和管理应用程序。本教程将手把手教你如何在 Ubuntu 系统上部署一个完整的 Kubernetes 集群,即使你是初学者也能轻松上手。

Ubuntu云原生集群部署(从零开始搭建高可用Kubernetes集群) Ubuntu云原生集群  Kubernetes部署 容器化应用 云原生基础设施 第1张

为什么选择 Ubuntu 构建云原生基础设施?

Ubuntu 是全球最流行的 Linux 发行版之一,拥有强大的社区支持、长期安全更新以及对容器生态系统的深度集成。它被广泛用于生产环境中的 云原生基础设施,尤其适合作为 Kubernetes 节点的操作系统。

准备工作

在开始之前,请确保你有以下资源:

  • 至少 2 台运行 Ubuntu 22.04 LTS 的服务器(1台 master + 1台 worker)
  • 每台机器至少 2GB 内存、2核 CPU
  • root 权限或具有 sudo 权限的用户
  • 稳定的网络连接

第一步:初始化所有节点

在所有服务器上执行以下操作:

# 更新系统sudo apt update && sudo apt upgrade -y# 关闭 swap(Kubernetes 要求)sudo swapoff -asudo sed -i '/ swap / s/^/#/' /etc/fstab# 加载内核模块cat <  

第二步:安装容器运行时(containerd)

Kubernetes 需要一个容器运行时来管理 Pod 中的容器。我们使用 containerd:

# 安装依赖sudo apt install -y ca-certificates curl gnupg lsb-release# 添加 Docker 官方 GPG 密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 设置仓库echo \  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 安装 containerdsudo apt updatesudo apt install -y containerd.io# 配置 containerdsudo mkdir -p /etc/containerdcontainerd config default | sudo tee /etc/containerd/config.toml# 修改配置以启用 systemd cgroup 驱动sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml# 重启 containerdsudo systemctl restart containerdsudo systemctl enable containerd

第三步:安装 kubeadm、kubelet 和 kubectl

这些是 Kubernetes 的核心组件:

# 添加 Kubernetes APT 仓库sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpgecho "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list# 安装工具sudo apt updatesudo apt install -y kubelet kubeadm kubectl# 锁定版本(防止自动更新)sudo apt-mark hold kubelet kubeadm kubectl

第四步:初始化主节点(Master Node)

仅在主节点执行以下命令:

# 初始化集群(替换 YOUR_MASTER_IP 为主机公网IP)sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=YOUR_MASTER_IP# 配置 kubectlmkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

初始化成功后,你会看到类似 kubeadm join ... 的命令,请复制保存,稍后用于加入工作节点。

第五步:安装 CNI 网络插件(Flannel)

Pod 之间需要网络通信,我们使用 Flannel:

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

第六步:加入工作节点(Worker Node)

在每台工作节点上运行之前保存的 kubeadm join 命令:

# 示例(请使用你自己的 token 和 hash)sudo kubeadm join YOUR_MASTER_IP:6443 --token abcdef.1234567890abcdef \    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

第七步:验证集群状态

回到主节点,运行以下命令检查节点是否就绪:

kubectl get nodes

如果输出中所有节点的 STATUS 为 Ready,恭喜你!你的 Ubuntu云原生集群 已成功部署。

后续建议

现在你可以开始部署 容器化应用,例如使用 Helm 安装 Nginx、MySQL 或自定义微服务。为了生产环境,建议:

  • 配置高可用(多 master 节点)
  • 设置持久化存储(如 Rook/Ceph)
  • 启用 RBAC 和网络策略
  • 集成监控(Prometheus + Grafana)

通过本教程,你已经掌握了在 Ubuntu 上构建 云原生基础设施 的核心技能。这不仅为你打下了坚实的 DevOps 基础,也为未来部署大规模 Kubernetes部署 项目做好了准备。