Rancher 是一个开源的企业级 Kubernetes 管理平台。Kubernetes (K8s) 本身是用于自动部署、扩展和管理容器化应用程序的强大工具,但直接操作它可能非常复杂。Rancher 的目标就是极大地简化 K8s 的使用和运维。
Rancher 公司产品介绍
- rancher
- k3k 是在 Kubernetes 集群中部署 Kubernetes 工具,它提供了一种在 kubernetes 集群上运行多个嵌入式隔离的 k3s 集群的方法。
- Harvester 安装在裸金属服务器上,提供集成的虚拟化和分布式存储功能。
- Longhorn 是一个轻量级、可靠且易于使用的 Kubernetes 分布式块存储系统,100%开源,可在任何地方运行。
Rancher 的核心功能
Rancher 的核心价值在于它提供了统一的界面和工具集来管理所有 K8s 集群。
-
多集群管理 (Multi-Cluster Management)
- 这是 Rancher 最关键的功能。无论您的 K8s 集群在哪里运行——是在本地数据中心(On-prem)、公有云(如 AWS EKS, Google GKE, Azure AKS)还是混合云环境——您都可以将它们导入到 Rancher 中,并通过一个统一的控制台进行管理。
- 您也可以使用 Rancher 来创建新的 K8s 集群。
-
简化的 K8s 部署
- Rancher 提供了自己的 K8s 发行版,如 RKE (Rancher Kubernetes Engine) 和 K3s(一个轻量级 K8s 发行版,非常适合边缘计算和资源受限的环境)。
- 这使得创建生产就绪的 K8s 集群变得更加简单快捷。
-
统一的认证和权限管理 (RBAC)
- Rancher 可以与您现有的用户认证系统(如 Active Directory, LDAP, GitHub 等)集成。
- 它允许管理员在所有集群和项目中集中设置和强制执行基于角色的访问控制 (RBAC) 策略,确保了企业级的安全性和合规性。
-
直观的用户界面 (UI)
- Rancher 提供了一个非常友好和强大的 Web UI。即使是对 K8s 命令(
kubectl)不太熟悉的用户,也可以通过点击界面来部署应用、管理节点、查看资源状态和日志。
- 这大大降低了 K8s 的使用门槛,使开发人员也能进行自助服务。
-
丰富的应用生态(应用商店)
- Rancher 内置了一个
应用商店(Application Catalog),它基于 Helm(K8s 的包管理器)。
- 用户可以一键部署各种预先配置好的常用应用和服务,如 Prometheus(监控)、Grafana(图表)、Jenkins(CI/CD)或各种数据库。
-
集成的运维工具
- Rancher 开箱即用地集成了强大的监控(基于 Prometheus)和日志(基于 Fluentd)解决方案,让您能轻松监控所有集群和应用的健康状况。
- 它还包括了持久化存储管理(如 Longhorn,Rancher 开发的云原生存储方案)和服务网格(如 Istio)的集成。
Rancher vs. Kubernetes:是什么关系?
简单来说:
- Kubernetes 是
**引擎**。它是在幕后实际协调和管理容器的核心技术。
- Rancher 是
**驾驶舱**和**控制面板**。它运行在 K8s 之上(或管理外部的 K8s),提供了一个用户友好的界面和一系列管理工具,让驾驶(管理)K8s 变得更安全、更简单、更高效。
您不需要 Rancher 也能运行 Kubernetes,但如果您需要管理多个集群,或者希望为您的 DevOps 团队提供一个标准化的、易于使用的平台,Rancher 就会非常有价值。
谁适合使用 Rancher?
- 需要管理多个 K8s 集群的企业:希望在混合云或多云环境中实现一致的管理体验。
- 希望简化 K8s 运维的 IT 团队:需要集中的认证、监控和安全策略。
- 希望赋能开发人员的 DevOps 团队:为开发人员提供自助部署应用的能力,同时不失可控性。
- 边缘计算场景:使用 K3s 和 Rancher 来管理大量分布式的、轻量级的 K8s 集群。
docker 部署 Rancher
# 启动
docker run -d --restart=unless-stopped --privileged --name rancher -p 80:80 -p 443:443 rancher/rancher:stable
# 查看日志
docker logs -f rancher
CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';
GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';
docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 rancher/server:v1.6.2 --db-host 127.0.0.1 --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle
# HA 其他节点
docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 rancher/server:v1.6.2 --db-host 127.0.0.1 --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle --advertise-address x.x.x.x
helm 部署 Rancher