基于RKE构建高可用Kubernetes集群并部署Rancher管理平台

张开发
2026/4/13 18:04:00 15 分钟阅读

分享文章

基于RKE构建高可用Kubernetes集群并部署Rancher管理平台
1. 为什么选择RKE构建Kubernetes集群当企业需要部署生产级容器管理平台时RKERancher Kubernetes Engine是个绝佳选择。我曾在多个项目中用RKE搭建K8s集群最直观的感受就是它的简洁高效——通过一个YAML文件就能定义整个集群拓扑相比kubeadm减少了大量手动配置环节。RKE有三大核心优势全自动化部署内置的CLI工具自动处理证书生成、组件部署等复杂流程灵活的基础设施适配支持物理机、虚拟机甚至混合云环境与Rancher深度集成为后续部署Rancher管理平台提供原生支持提示生产环境建议至少准备3个节点每个节点配置4核CPU/8GB内存/100GB存储避免因资源不足导致集群不稳定。2. 环境准备与系统配置2.1 主机规格要求这是我经过多次测试验证的推荐配置角色CPU内存磁盘数量Control PlaneEtcd4核8GB100GB3Worker节点8核16GB200GB按需负载均衡器2核4GB50GB12.2 关键系统配置在CentOS 7.9上需要完成的配置所有节点# 关闭SELinux和防火墙 setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config systemctl disable --now firewalld # 内核参数调优 cat /etc/sysctl.d/k8s.conf EOF net.ipv4.ip_forward 1 net.bridge.bridge-nf-call-iptables 1 vm.swappiness 0 EOF sysctl -p /etc/sysctl.d/k8s.conf # 加载IPVS模块 modprobe ip_vs modprobe ip_vs_rr踩坑记录曾经因为漏配net.ipv4.ip_forward导致Pod网络不通排查了整整两天3. 使用RKE部署Kubernetes集群3.1 准备cluster.yml配置这是经过生产验证的配置模板nodes: - address: 192.168.1.101 user: rancher role: [controlplane,worker,etcd] - address: 192.168.1.102 user: rancher role: [controlplane,worker,etcd] - address: 192.168.1.103 user: rancher role: [controlplane,worker,etcd] services: etcd: snapshot: true retention: 24h creation: 6h kube-api: service_node_port_range: 30000-32767 kubelet: fail_swap_on: false3.2 执行集群部署# 下载RKE二进制文件 wget https://github.com/rancher/rke/releases/download/v1.3.12/rke_linux-amd64 chmod x rke_linux-amd64 mv rke_linux-amd64 /usr/local/bin/rke # 启动部署 rke up --config cluster.yml部署完成后会生成两个关键文件kube_config_cluster.yml集群访问凭证cluster.rkestate集群状态文件重要立即备份这两个文件我曾因误删导致不得不重建整个集群。4. 部署Rancher管理平台4.1 安装Helmcurl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash helm repo add rancher-stable https://releases.rancher.com/server-charts/stable4.2 证书准备生产环境推荐使用Lets Encrypt# 安装cert-manager helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.8.0 \ --set installCRDstrue4.3 部署Rancherhelm install rancher rancher-stable/rancher \ --namespace cattle-system \ --create-namespace \ --set hostnamerancher.yourdomain.com \ --set ingress.tls.sourceletsEncrypt \ --set letsEncrypt.emailadminyourdomain.com验证部署状态kubectl -n cattle-system rollout status deploy/rancher5. 高可用架构设计要点5.1 负载均衡配置这是经过优化的Nginx配置示例stream { upstream rancher_servers { server 192.168.1.101:443 max_fails3 fail_timeout5s; server 192.168.1.102:443 max_fails3 fail_timeout5s; server 192.168.1.103:443 max_fails3 fail_timeout5s; } server { listen 443; proxy_pass rancher_servers; } }5.2 监控与告警建议部署Prometheus监控栈helm install rancher-monitoring rancher-stable/rancher-monitoring \ --namespace cattle-monitoring-system \ --create-namespace \ --set prometheus.prometheusSpec.resources.limits.memory4096Mi6. 日常运维技巧集群升级rke up --config cluster.yml --upgradeETCD备份恢复# 备份 rke etcd snapshot-save --config cluster.yml --name pre-upgrade.db # 恢复 rke etcd snapshot-restore --config cluster.yml --name pre-upgrade.db故障排查命令# 查看组件日志 kubectl logs -n kube-system pod-name # 检查节点状态 kubectl get nodes -o wide在实际运维中我发现Rancher的多集群管理功能特别实用可以统一管理数十个K8s集群。通过项目(Project)和命名空间(Namespace)的权限隔离能很好地满足企业多团队协作需求。

更多文章