在虚拟机上安装
学习如何在一台或多台虚拟机上安装RDI
本指南解释了如何在一台或多台虚拟机上安装Redis数据集成(RDI)并将其与您的源数据库集成。您还可以在Kubernetes上安装RDI。
硬件规模
RDI 主要受 CPU 和网络限制。 每个 RDI 虚拟机应至少具备:
- CPU: 至少需要4个CPU核心。如果您的数据集很大,并且希望尽可能快地摄取基线快照,您应该考虑在此基础上增加2-6个额外的核心。
- RAM: 2GB
- 磁盘: 25GB,其中包括操作系统的占用空间。特别是,RDI需要在
/var
文件夹中占用7GB,在/opt
文件夹中占用1GB(用于存储日志文件)。 - 网络接口: 10GB 或更高。
在虚拟机上安装RDI
通常,为了高可用性(HA),您会在两台虚拟机上安装RDI,但如果您不需要高可用性,也可以只在一台虚拟机上安装。例如,在开发和测试期间,您可能不需要高可用性。
由于网络规则不兼容,您不能在已安装Redis Enterprise集群的主机上安装RDI。如果您想在之前用于Redis Enterprise的主机上安装RDI,则必须使用iptables
在安装前“清理”主机,使用以下命令行:
sudo iptables-save | awk '/^[*]/ { print $1 }
/^:[A-Z]+ [^-]/ { print $1 " ACCEPT" ; }
/COMMIT/ { print $0; }' | sudo iptables-restore
如果您在nftables
模式下使用iptables
v1.6.1及更早版本,可能会遇到问题。请使用v1.6.1之后的iptables
版本,或通过以下命令启用iptables
传统模式:
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
此外,iptables
版本 1.8.0-1.8.4 存在已知问题,可能会阻止 RDI 正常工作,特别是在 RHEL 8 上。理想情况下,使用 iptables
v1.8.8,已知该版本与 RDI 正常工作。
RDI支持的操作系统版本有:
- RHEL 8 & 9
- Ubuntu 18.04 & 20.04
您必须以特权用户身份运行RDI安装程序,因为它会安装 containerd并注册服务。然而,您不需要任何特殊权限来运行RDI进程以进行正常操作。
RDI 对云虚拟机有一些要求,您必须在运行 RDI 安装程序之前实现这些要求,否则安装将失败。以下部分提供了 RHEL 和 Ubuntu 的完整预安装说明。
RHEL
我们建议您在安装前使用以下命令关闭
firewalld
:
systemctl disable firewalld --now
然而,如果你确实需要使用firewalld
,你必须添加以下规则:
firewall-cmd --permanent --add-port=6443/tcp #apiserver
firewall-cmd --permanent --zone=trusted --add-source=10.42.0.0/16 #pods
firewall-cmd --permanent --zone=trusted --add-source=10.43.0.0/16 #services
firewall-cmd --reload
firewall-cmd --permanent --add-port=8080/tcp # (Required) rdi-operator/rdi-api
firewall-cmd --permanent --add-port=9090/tcp # vm-dis-reloader
firewall-cmd --permanent --add-port=9092/tcp # prometheus-service
firewall-cmd --permanent --add-port=9121/tcp # rdi-metric-exporter
如果您启用了nm-cloud-setup.service
,您必须禁用它并使用以下命令重新启动节点:
systemctl disable nm-cloud-setup.service nm-cloud-setup.timer
reboot
Ubuntu
我们建议您在安装前关闭
Uncomplicated Firewall (ufw
)
使用以下命令:
ufw disable
然而,如果你确实需要使用ufw
,你必须添加以下规则:
ufw allow 6443/tcp #apiserver
ufw allow from 10.42.0.0/16 to any #pods
ufw allow from 10.43.0.0/16 to any #services
ufw allow 8080/tcp # (Required) rdi-operator/rdi-api
ufw allow 9090/tcp # vm-dis-reloader
ufw allow 9092/tcp # prometheus-service
ufw allow 9121/tcp # rdi-metric-exporter
安装步骤
按照以下步骤为您的每个虚拟机操作:
-
从Redis下载中心下载RDI安装程序 (在模块、工具与集成下拉菜单下) 并将其解压到您首选的安装文件夹中。
-
转到安装文件夹:
cd rdi_install/$RDI_VERSION
-
以特权用户身份运行安装程序:
sudo ./install.sh
Note:RDI 使用 K3s 作为其实现的一部分。 默认情况下,安装程序将 K3s 安装在
/var/lib
目录中, 但如果您在/var
中空间有限或公司政策禁止您在那里安装,这可能会成为问题。您可以使用--installation-dir
选项与install.sh
(或redis-di install
)选择不同的目录进行 K3s 安装:```bash sudo ./install.sh --installation-dir <custom-directory-path> ```
RDI 使用您 Redis Enterprise 集群上的数据库来存储其状态信息。这需要 Redis Enterprise v6.4 或更高版本。
安装程序会提供指导,帮助您创建密钥和创建您的管道。 在安装过程中,它会要求您提供集群管理员凭据。
使用Redis控制台创建RDI数据库,需满足以下要求:
- 250MB RAM,带有一个主节点和一个副本。
- 如果您正在为生产环境部署RDI,请使用密码和TLS保护此数据库。
- 为安装提供所需的RDI数据库详细信息。
- 将数据库的
淘汰策略设置为
noeviction
,并将 数据持久化 设置为AOF - 每秒同步一次。 - 确保RDI数据库不是集群的。 如果RDI数据库是集群的,RDI将无法正常工作,但目标数据库可以是集群的。
如果在安装过程中将localhost
指定为RDI数据库服务器的地址,那么当本地虚拟机的实际IP地址发生变化时,连接将失败。因此,我们建议您不要使用localhost
作为地址。然而,如果您确实遇到此问题,您可以在运行RDI本身的虚拟机上使用以下命令来修复它:
sudo k3s kubectl delete nodes --all
sudo service k3s restart
安装完成后,RDI 即可使用。
提供云DNS信息
如果您正在使用Amazon Route 53、
Google Cloud DNS或
Azure DNS,
那么在安装过程中(或者如果您使用静默安装,则使用nameservers
属性),
您必须向安装程序提供名称服务器的IP地址。下表显示了每个平台的适当IP地址:
平台 | 域名服务器IP |
---|---|
Amazon Route 53 | 169.254.169.253 |
Google Cloud DNS | 169.254.169.254 |
Azure DNS | 168.63.129.16 |
如果您计划使用 Route 53,您应首先检查您的 VPC 是否配置为允许使用它。有关更多信息,请参阅 Amazon 文档中的VPC 中的 DNS 属性。
"静默" 安装
您可以使用
安装脚本 或
redis-di install
命令与 --file
选项(或更短的版本 -f
)来自动提供安装程序问题的答案,使用来自
TOML 文件的属性:
./install.sh --file silent.toml
静默安装示例
以下TOML文件示例显示了典型静默安装配置的属性:
title = "RDI Silent Installer Config"
scaffold = true
db_index = 4
deploy_directory = "/opt/rdi/config"
# Upstream DNS servers. This is needed if the installer detects a DNS resolver
# with a loopback address as an upstream DNS server.
# nameservers = ["8.8.8.8", "8.8.4.4"]
# HTTPS port you want to expose the RDI API on, if different from 443.
# https_port = 5443
[rdi.database]
host = "localhost"
port = 12001
username = "username"
password = "password"
ssl = true
# Uncomment the properties in this section only if the RDI
# database uses TLS/mTLS.
# [rdi.database.certificates]
# ca = "/home/ubuntu/rdi/certs/ca.crt"
# cert = "/home/ubuntu/rdi/certs/client.crt"
# key = "/home/ubuntu/rdi/certs/client.key"
# passphrase = "foobar"
以下部分更详细地描述了这些属性。
静默安装属性
根
属性 | 描述 |
---|---|
title |
用于标识文件的文本。RDI不使用此字段,因此您可以使用任何您喜欢的文本。 |
scaffold |
您是否希望在安装过程中启用脚手架?(true/false) |
db_index |
整数,用于指定脚手架生成的源数据库类型。选项包括2(MySQL/MariaDB)、3(Oracle)、4(PostgreSQL)和5(SQL Server)。 |
deploy_directory |
您希望存储RDI配置的目录路径。 |
nameservers |
上游DNS服务器。如果安装程序检测到DNS解析器使用回环地址作为上游DNS服务器(例如,nameservers = ["8.8.8.8", "8.8.4.4"] ),则需要此设置。 |
https_port |
如果您希望暴露的RDI API端口与443不同,请指定HTTPS端口。 |
rdi.database
使用本节中的属性来指定您的RDI数据库。
属性 | 描述 |
---|---|
host |
用于存储RDI状态的Redis数据库的主机名。 |
port |
RDI数据库的端口。 |
username |
RDI数据库的用户名。 |
password |
RDI数据库的密码。 |
ssl |
是否为RDI数据库启用了SSL(true/false)?如果为false,则RDI将忽略rdi.database.certificates 部分中的设置。 |
rdi.database.certificates
仅当RDI数据库需要
TLS 或
mTLS 时使用这些属性。
您还必须在
rdi.database
部分中将 ssl
设置为 true
以启用这些属性。
属性 | 描述 |
---|---|
ca |
CA证书文件的路径。 |
cert |
客户端证书文件的路径。 |
key |
密钥文件的路径。 |
passphrase |
私钥的密码(字符串)。 |
准备您的源数据库
您还必须配置源数据库以使用CDC连接器。请参阅 准备源数据库 部分了解如何执行此操作。
部署一个管道
当安装完成,并且您已经为CDC准备了源数据库时,您就可以开始使用RDI了。请参阅指南以获取更多关于配置和部署RDI管道的信息。您也可以使用Redis Insight来配置和部署管道。
卸载RDI
如果你想移除你的RDI安装,请前往安装文件夹并以特权用户身份运行卸载脚本:
sudo ./uninstall.sh
脚本将在您继续之前检查您是否确定:
This will uninstall RDI and its dependencies, are you sure? [y, N]
如果您在此处输入除“y”以外的任何内容,脚本将中止,不会对RDI或您的源数据库进行任何更改。