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

RockyLinux云原生集群部署(手把手教你搭建高可用Kubernetes集群)

随着云原生技术的迅猛发展,越来越多的企业选择基于开源、稳定的操作系统构建容器化平台。RockyLinux作为RHEL的社区替代品,凭借其企业级稳定性与完全兼容性,成为部署云原生基础设施的理想选择。本教程将带你从零开始,在RockyLinux上部署一个高可用的Kubernetes集群,即使你是初学者也能轻松上手。

为什么选择RockyLinux进行云原生集群部署?

RockyLinux是一个由社区驱动的、100%兼容RHEL的Linux发行版,它继承了RHEL的稳定性、安全性和长期支持特性,同时完全免费。对于希望构建生产级Kubernetes环境但又不想承担商业许可费用的团队来说,RockyLinux云原生集群部署 是一个极具性价比的选择。

RockyLinux云原生集群部署(手把手教你搭建高可用Kubernetes集群) RockyLinux云原生集群部署  Kubernetes on RockyLinux RockyLinux容器化平台 云原生操作系统RockyLinux 第1张

准备工作

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

  • 至少3台RockyLinux 9.x服务器(1个控制节点 + 2个工作节点)
  • 每台服务器至少2核CPU、2GB内存
  • 所有节点之间网络互通,且能访问互联网
  • root权限或具有sudo权限的用户

第一步:配置基础环境

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

# 关闭防火墙(生产环境中建议配置规则而非关闭)sudo systemctl stop firewalldsudo systemctl disable firewalld# 禁用SELinuxsudo setenforce 0sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config# 关闭swapsudo swapoff -asudo sed -i '/swap/s/^/#/' /etc/fstab# 配置主机名(每台机器不同)sudo hostnamectl set-hostname master-node   # 控制节点# 或sudo hostnamectl set-hostname worker-node1 # 工作节点1# 配置hosts文件(所有节点都要添加)echo "192.168.1.10 master-node192.168.1.11 worker-node1192.168.1.12 worker-node2" | sudo tee -a /etc/hosts

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

Kubernetes推荐使用符合CRI标准的容器运行时。这里我们使用Containerd:

# 安装依赖sudo dnf install -y yum-utils device-mapper-persistent-data lvm2# 添加Docker官方仓库(Containerd包含在其中)sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 安装containerdsudo dnf 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# 启动并启用containerdsudo systemctl enable --now containerd

第三步:安装kubeadm、kubelet和kubectl

在所有节点上安装Kubernetes组件:

# 添加Kubernetes官方仓库cat <

第四步:初始化控制平面(Master节点)

仅在master-node上执行:

# 初始化集群(注意替换pod-network-cidr为你计划使用的CNI网段)sudo kubeadm init \  --pod-network-cidr=10.244.0.0/16 \  --kubernetes-version=v1.28.0# 配置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)

在master节点上安装网络插件,这里以Flannel为例:

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

第六步:将工作节点加入集群

在每个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

总结

通过以上步骤,你已经成功完成了RockyLinux云原生集群部署。这个集群可以作为你后续部署微服务、CI/CD流水线或Serverless平台的基础。记住,生产环境中还需考虑高可用etcd、负载均衡器、证书管理等高级配置。

无论你是DevOps工程师还是系统管理员,掌握在Kubernetes on RockyLinux上的部署技能都将大大提升你的云原生能力。RockyLinux的稳定性和兼容性使其成为构建云原生操作系统RockyLinux生态的理想基石。

如果你正在寻找一个免费、可靠、企业级的平台来搭建RockyLinux容器化平台,那么现在就是最好的开始时机!