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

构建高可用云原生环境(CentOS云原生集群从零搭建详细教程)

在当今的云计算时代,CentOS云原生集群已成为企业构建现代化应用架构的重要选择。本文将手把手教你如何在 CentOS 系统上从零开始搭建一个功能完整的 Kubernetes on CentOS 集群,即使你是完全的新手,也能轻松上手!

什么是云原生?为什么选择 CentOS?

云原生(Cloud Native)是一种构建和运行应用程序的方法,它充分利用云计算的弹性、可扩展性和自动化能力。而 CentOS 作为一款稳定、免费的企业级 Linux 发行版,长期被广泛用于生产环境,是部署 云原生部署教程 中推荐的操作系统之一。

构建高可用云原生环境(CentOS云原生集群从零搭建详细教程) CentOS云原生集群  Kubernetes on CentOS 云原生部署教程 CentOS容器化集群 第1张

准备工作

你需要准备以下资源:

  • 至少 2 台 CentOS 7 或 CentOS Stream 8/9 服务器(1 Master + 1 Worker)
  • 每台机器至少 2GB 内存、2 核 CPU
  • 网络互通,关闭防火墙或开放必要端口
  • root 权限或 sudo 权限

第一步:系统初始化配置

在所有节点上执行以下操作:

# 关闭 SELinuxsudo setenforce 0sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config# 关闭 swapsudo swapoff -asudo sed -i '/swap/s/^/#/' /etc/fstab# 配置主机名(Master 节点)sudo hostnamectl set-hostname k8s-master# 配置主机名(Worker 节点)sudo hostnamectl set-hostname k8s-worker1# 添加 hosts 映射(所有节点)echo "192.168.1.10 k8s-master" | sudo tee -a /etc/hostsecho "192.168.1.11 k8s-worker1" | sudo tee -a /etc/hosts

第二步:安装 Docker 和 containerd

Kubernetes 推荐使用 containerd 作为容器运行时。我们先安装 Docker 工具集,再配置 containerd:

# 安装必要工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加 Docker 仓库sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 安装 containerdsudo yum install -y containerd.io# 配置 containerdsudo mkdir -p /etc/containerdsudo containerd config default | sudo tee /etc/containerd/config.toml# 修改配置文件,将 SystemdCgroup 设为 truesudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml# 启动并设置开机自启sudo systemctl enable --now containerd

第三步:安装 Kubernetes 组件

在所有节点上安装 kubelet、kubeadm 和 kubectl:

# 添加 Kubernetes 官方仓库cat <

第四步:初始化 Master 节点

在 Master 节点上执行以下命令:

# 初始化集群(注意替换为你自己的 Pod 网段)sudo kubeadm init --pod-network-cidr=10.244.0.0/16# 配置 kubectlmkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

初始化完成后,你会看到类似如下的输出,其中包含加入集群的命令,请妥善保存:

kubeadm join 192.168.1.10:6443 --token abcdef.0123456789abcdef \    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

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

Kubernetes 需要 CNI 插件来实现 Pod 之间的通信。这里我们使用 Flannel:

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

第六步:加入 Worker 节点

在 Worker 节点上运行之前保存的 kubeadm join 命令:

# 示例命令(请使用你自己的 token 和 hash)sudo kubeadm join 192.168.1.10:6443 --token abcdef.0123456789abcdef \    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

第七步:验证集群状态

回到 Master 节点,执行以下命令:

kubectl get nodes

如果看到所有节点状态为 Ready,恭喜你!你的 CentOS容器化集群 已成功搭建!

总结

通过本篇 云原生部署教程,你已经掌握了如何在 CentOS 上部署一个完整的 Kubernetes 集群。这套 CentOS云原生集群 架构可以作为你后续部署微服务、CI/CD 流水线或 DevOps 平台的基础。接下来,你可以尝试部署 Ingress Controller、持久化存储、监控系统等高级组件,进一步完善你的云原生平台。

提示:生产环境中建议使用高可用方案(如多 Master 节点 + 负载均衡),并定期更新安全补丁。