在虚拟机上安装

学习如何在一台或多台虚拟机上安装RDI

本指南解释了如何在一台或多台虚拟机上安装Redis数据集成(RDI)并将其与您的源数据库集成。您还可以在Kubernetes上安装RDI

注意:
我们建议您使用RDI v1.4.2或更高版本。之前的版本,RDI v1.2.8,在IPv6被禁用的虚拟机上将无法工作。这个问题在1.4.0版本中得到了解决。

硬件规模

RDI 主要受 CPU 和网络限制。 每个 RDI 虚拟机应至少具备:

  • CPU: 至少需要4个CPU核心。如果您的数据集很大,并且希望尽可能快地摄取基线快照,您应该考虑在此基础上增加2-6个额外的核心。
  • RAM: 2GB
  • 磁盘: 25GB,其中包括操作系统的占用空间。特别是,RDI需要在/var文件夹中占用7GB,在/opt文件夹中占用1GB(用于存储日志文件)。
  • 网络接口: 10GB 或更高。

在虚拟机上安装RDI

通常,为了高可用性(HA),您会在两台虚拟机上安装RDI,但如果您不需要高可用性,也可以只在一台虚拟机上安装。例如,在开发和测试期间,您可能不需要高可用性。

Note:

由于网络规则不兼容,您不能在已安装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 安装程序之前实现这些要求,否则安装将失败。以下部分提供了 RHELUbuntu 的完整预安装说明。

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

您还应该为您打算使用的所有RDI服务添加端口规则

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

您还应该为您打算使用的所有RDI服务添加端口规则

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
注意:
如果您的设置需要,您可能还需要添加类似的规则来打开其他端口。

安装步骤

按照以下步骤为您的每个虚拟机操作:

  1. Redis下载中心下载RDI安装程序 (在模块、工具与集成下拉菜单下) 并将其解压到您首选的安装文件夹中。

  2. 转到安装文件夹:

    cd rdi_install/$RDI_VERSION
    
  3. 以特权用户身份运行安装程序:

    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将无法正常工作,但目标数据库可以是集群的。
Note:

如果在安装过程中将localhost指定为RDI数据库服务器的地址,那么当本地虚拟机的实际IP地址发生变化时,连接将失败。因此,我们建议您不要使用localhost作为地址。然而,如果您确实遇到此问题,您可以在运行RDI本身的虚拟机上使用以下命令来修复它:

sudo k3s kubectl delete nodes --all
sudo service k3s restart

安装完成后,RDI 即可使用。

提供云DNS信息

注意:
本节仅适用于在云环境中的虚拟机上安装RDI的情况。

如果您正在使用Amazon Route 53Google Cloud DNSAzure 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数据库需要 TLSmTLS 时使用这些属性。 您还必须在 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或您的源数据库进行任何更改。

RATE THIS PAGE
Back to top ↑