轻量级Kubernetes管理:RKE2单节点+Rancher+私有仓库部署指南
1. 项目概述最近在帮客户部署一套轻量级的Kubernetes管理环境考虑到资源限制和运维成本最终选择了RKE2单节点集群Rancher私有镜像仓库的方案。这套组合特别适合中小团队快速搭建自己的容器化平台既能满足日常开发测试需求又不会带来过重的运维负担。RKE2是Rancher官方维护的Kubernetes发行版相比原生的K8s安装更加简单内置了容器运行时、网络插件等核心组件。单节点模式虽然牺牲了高可用性但对于资源有限的环境或者开发测试场景完全够用。配合Rancher提供的可视化界面可以大大降低Kubernetes的学习和使用门槛。私有镜像仓库则是企业级容器化部署的刚需既能加速镜像拉取又能保证代码安全。本文将详细介绍从零开始搭建整套环境的完整流程包括常见问题的解决方案和性能优化建议。2. 环境准备与基础配置2.1 服务器要求推荐使用Ubuntu 20.04/22.04 LTS系统配置建议CPU: 4核以上内存: 8GB以上磁盘: 100GB以上建议SSD网络: 稳定的内网连接注意虽然RKE2单节点对资源要求不高但如果要同时运行Rancher和私有仓库建议不要低于上述配置否则可能遇到性能问题。2.2 系统初始化首先进行必要的系统配置# 关闭swap sudo swapoff -a sudo sed -i / swap / s/^\(.*\)$/#\1/g /etc/fstab # 设置主机名 sudo hostnamectl set-hostname rke2-server # 配置防火墙(如果使用ufw) sudo ufw allow 22/tcp sudo ufw allow 6443/tcp sudo ufw allow 9345/tcp sudo ufw enable2.3 安装依赖组件安装Docker作为容器运行时RKE2也支持containerd但Docker更通用sudo apt-get update sudo apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ deb [archamd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io3. RKE2单节点集群安装3.1 安装RKE2 ServerRKE2提供了极简的安装方式curl -sfL https://get.rke2.io | sudo sh -启动RKE2服务sudo systemctl enable rke2-server.service sudo systemctl start rke2-server.service检查服务状态sudo systemctl status rke2-server.service3.2 配置kubectl访问获取kubeconfig文件mkdir -p ~/.kube sudo cp /etc/rancher/rke2/rke2.yaml ~/.kube/config sudo chown $(id -u):$(id -g) ~/.kube/config设置环境变量export KUBECONFIG~/.kube/config export PATH$PATH:/var/lib/rancher/rke2/bin验证集群状态kubectl get nodes kubectl get pods -A3.3 网络插件配置RKE2默认使用Canal(FlannelCalico)作为网络插件如果需要修改sudo mkdir -p /etc/rancher/rke2/ sudo tee /etc/rancher/rke2/config.yaml EOF cni: cilium EOF然后重启RKE2服务sudo systemctl restart rke2-server.service4. Rancher安装与配置4.1 安装HelmRancher推荐使用Helm进行安装curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash4.2 添加Rancher Helm仓库helm repo add rancher-stable https://releases.rancher.com/server-charts/stable helm repo update4.3 安装Rancher创建命名空间kubectl create namespace cattle-system使用Helm安装Rancherhelm install rancher rancher-stable/rancher \ --namespace cattle-system \ --set hostnamerancher.yourdomain.com \ --set bootstrapPasswordadmin123 \ --set replicas1提示单节点环境设置replicas1即可如果是生产环境建议至少3个副本4.4 访问Rancher UI获取Rancher服务IPkubectl get svc -n cattle-system rancher在浏览器访问https://节点IP: 使用初始密码admin123登录。5. 私有镜像仓库搭建5.1 安装HarborHarbor是企业级的私有镜像仓库解决方案helm repo add harbor https://helm.goharbor.io helm repo update创建命名空间kubectl create namespace harbor安装Harborhelm install harbor harbor/harbor \ --namespace harbor \ --set expose.typenodePort \ --set expose.tls.enabledfalse \ --set persistence.enabledtrue \ --set externalURLhttp://harbor.yourdomain.com5.2 配置Harbor获取管理员密码kubectl get secret -n harbor harbor-core -o jsonpath{.data.HARBOR_ADMIN_PASSWORD} | base64 -d访问Harbor UI默认NodePort为30002http://节点IP:300025.3 配置Docker客户端在需要推送镜像的机器上配置sudo tee /etc/docker/daemon.json EOF { insecure-registries : [harbor.yourdomain.com] } EOF sudo systemctl restart docker6. 集成与优化6.1 将Harbor集成到Rancher登录Rancher UI进入集群-项目-资源-密文添加Docker Registry凭证在部署应用时选择私有仓库6.2 性能优化建议为RKE2配置合适的资源限制# /etc/rancher/rke2/config.yaml kubelet-arg: - max-pods100 - kube-reservedcpu500m,memory1Gi - system-reservedcpu500m,memory1Gi调整Harbor资源限制helm upgrade harbor harbor/harbor \ --namespace harbor \ --set resources.requests.cpu500m \ --set resources.requests.memory1Gi定期清理无用镜像# 在Harbor UI中设置保留策略 # 或使用gc命令 docker exec -it harbor-jobservice /bin/bash registry garbage-collect /etc/registry/config.yml7. 常见问题排查7.1 RKE2启动失败检查日志journalctl -u rke2-server -f常见原因端口冲突6443,9345等磁盘空间不足内存不足7.2 Rancher无法访问检查服务状态kubectl get pods -n cattle-system kubectl logs -n cattle-system rancher-pod-name常见原因证书问题自签名证书需要手动信任网络策略阻止访问资源不足导致Pod崩溃7.3 镜像拉取失败检查项仓库地址是否正确认证信息是否正确网络是否可达镜像是否存在kubectl describe pod pod-name kubectl logs pod-name8. 安全加固建议为Rancher配置有效的TLS证书定期备份RKE2集群状态sudo /var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml get --all-namespaces -o yaml rke2-backup.yaml启用Harbor的漏洞扫描功能限制Rancher和Harbor的访问IP定期更新所有组件到最新版本这套环境经过实际项目验证能够稳定支持中小团队的日常开发和测试需求。单节点部署虽然简单但也要注意定期备份关键数据。如果后续资源充足可以很方便地扩展为多节点集群。

相关新闻

最新新闻

日新闻

周新闻

月新闻