要将 Rancher 安装到硬盘上,而不是通过 Docker 部署,可以使用 Rancher 提供的 RancherOS 或者通过裸机安装。下面是详细步骤,通过 ISO 镜像或其他手段直接将 Rancher 安装到硬盘上。
1. 准备安装环境
- 服务器硬件要求:
- 至少2个CPU核心
- 4 GB 内存或更多
- 20 GB 硬盘空间或更多
- 安装的目标系统需要有网络连接(Rancher通常需要互联网访问)
2. Rancher 的裸机安装方式
通过 Rancher Manager 安装可以在裸机上运行的 Rancher。
方法1: 使用 RancherOS 安装
RancherOS 是一个精简版的 Linux 操作系统,专门为运行 Docker 容器而设计,并且内置支持 Rancher。
-
下载 RancherOS: 前往 Rancher 官方网站下载 RancherOS 的 ISO 文件。
下载链接: Rancher Releases
-
创建启动盘: 使用工具如
Etcher
、Rufus
或其他制作启动盘的软件,将下载的 RancherOS ISO 写入U盘,制作一个可启动的安装盘。 -
安装 RancherOS: 通过U盘启动目标机器,选择 RancherOS 安装选项。
启动后进入命令行,运行以下命令来安装 RancherOS:
bash复制代码
sudo ros install -c cloud-config.yml -d /dev/sda
/dev/sda
是你的硬盘目标路径,请根据实际情况修改。cloud-config.yml
是配置文件,你可以在安装前自定义这个文件(例如配置网络、用户等)。
-
重启并配置 RancherOS: RancherOS 安装完成后,重启系统,进入 RancherOS。
RancherOS 内置 Docker 支持,你可以在其中运行 Rancher 镜像。
-
安装 Rancher: 启动 Rancher 管理界面:
bash复制代码
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest
方法2: 使用 Kubernetes 集群安装 Rancher
如果你想使用 Kubernetes 集群来安装 Rancher,可以通过 RKE(Rancher Kubernetes Engine)
或者现有的 Kubernetes 集群来进行安装。
-
准备 Kubernetes 环境: Rancher 需要一个已经配置好的 Kubernetes 集群。你可以使用以下工具来搭建 Kubernetes:
- RKE(Rancher Kubernetes Engine)
- K3s(轻量级的 Kubernetes 发行版)
-
安装 Helm: 你需要使用 Helm 来部署 Rancher。首先安装 Helm:
bash复制代码
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
-
部署 Rancher: 在 Kubernetes 集群上安装 Rancher,通过 Helm 部署:
bash复制代码
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable helm repo update kubectl create namespace cattle-system helm install rancher rancher-stable/rancher --namespace cattle-system --set hostname=rancher.yourdomain.com
将
rancher.yourdomain.com
替换为你的域名。 -
访问 Rancher 管理界面: 部署完成后,可以通过浏览器访问你配置的域名,进入 Rancher 管理界面进行集群管理。
3. 安装完成后的配置
- 进入 Rancher 管理界面后,你需要进行初始配置,设置管理员账户,并开始管理你的 Kubernetes 集群。
通过这两种方法,你可以将 Rancher 安装到裸机或硬盘上,而不是通过 Docker 部署。
cloud-config.yml
是在安装 RancherOS 或其他基于云配置的系统时用于定义系统配置的 YAML 文件。以下是一个基础的 cloud-config.yml
模板示例,其中包含了常用的网络配置、用户设置和一些初始化命令:
yaml复制代码
#cloud-config # 设置hostname hostname: rancher-server # 创建用户 rancher: ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD... users: - name: rancher ssh-authorized-keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD... sudo: ["ALL=(ALL) NOPASSWD:ALL"] groups: sudo homedir: /home/rancher shell: /bin/bash lock_passwd: false passwd: $6$rounds=4096$RancherExampleHash # 设置网络配置 rancher: network: interfaces: eth0: address: 192.168.1.100/24 gateway: 192.168.1.1 mtu: 1500 dhcp: false dns: - 8.8.8.8 - 8.8.4.4 # 自动启动docker服务 rancher: services_include: docker: true # 运行启动脚本 runcmd: - echo "RancherOS is now configured" - sudo system-docker restart docker # 设置 Rancher 镜像加速器(如果在中国大陆需要加速) write_files: - path: /etc/docker/daemon.json permissions: "0644" owner: root content: | { "registry-mirrors": ["https://registry.docker-cn.com"] } # 设置系统更新 rancher: upgrade: url: https://releases.rancher.com/os/releases.yml force: false interval: 1h # 其他初始化命令 bootcmd: - ifconfig eth0 up - ifup eth0
解释:
- hostname: 配置主机名。
- users: 创建用户,这里创建了一个
rancher
用户,并为其配置了SSH
密钥访问和sudo
权限。 - network: 配置网络,静态 IP 和 DNS。
- services_include: 定义系统启动时启用的服务,这里启用了
docker
。 - runcmd: 系统启动时执行的命令,可以根据需要添加初始化命令。
- write_files: 可以在系统启动时写入配置文件,例如为 Docker 设置镜像加速器,特别是在中国大陆使用 Docker 时建议添加这一配置。
- upgrade: 配置 RancherOS 的系统自动升级设置。
你可以根据具体的需求调整 cloud-config.yml
的内容,例如网络配置、用户权限以及其他初始化任务等。在安装时,将此文件提供给 RancherOS 安装程序,它会自动应用这些配置。
你可以不配置 cloud-config.yml
文件,直接安装 RancherOS 并进行基本操作。RancherOS 的默认安装不会强制要求使用 cloud-config.yml
文件,系统会以默认配置启动。默认情况下,RancherOS 会自动启动 Docker 服务,你可以在 RancherOS 上手动配置网络、创建用户以及其他必要的系统设置。
但以下几点需要注意:
-
网络配置: 如果你的网络是通过 DHCP 自动分配 IP,RancherOS 在默认情况下会自动获取 IP 并配置网络。如果你使用静态 IP 地址或者需要自定义 DNS 配置,则需要手动配置网络,或者在后期通过命令行完成网络设置。
-
用户配置: 默认安装后,RancherOS 会使用
rancher
用户登录,并且会尝试从cloud-config.yml
中导入 SSH 密钥。如果没有配置 SSH 密钥,RancherOS 仍然可以通过控制台访问(通过物理机或虚拟机的控制台),但如果需要远程访问,可能需要手动配置 SSH 密钥或启用密码登录。 -
后期手动配置: 如果没有提供
cloud-config.yml
,你可以在系统启动后手动进行必要的配置,例如:- 设置网络(使用
ifconfig
或ip
命令手动配置网络接口) - 启动其他服务
- 手动编辑 Docker 的配置文件等。
- 设置网络(使用
总结:
不配置 cloud-config.yml
并不会阻碍 RancherOS 的安装和基本使用。系统会以默认配置启动,你可以在安装完成后通过命令行或控制台手动进行所有需要的系统设置。
如果你有特定的系统设置需求,建议在系统启动后通过命令行来手动完成配置,或者在安装过程中创建并提供 cloud-config.yml
来自动化这些任务。