大数跨境
0
0

部署harbor外部数据库(redis+PostgreSQL)

部署harbor外部数据库(redis+PostgreSQL) SRE云原生
2025-11-27
5

Redis


一、安装 Redis

  1. 更新系统并安装 RedisCentOS 7 的默认仓库包含 Redis,直接通过 yum 安装:

    # 更新系统包sudo yum update -y
    # 安装Redissudo yum install redis -y















  2. 启动 Redis 并设置开机自启

    # 启动Redis服务sudo systemctl start redis
    # 设置开机自启sudo systemctl enable redis
    # 验证状态sudo systemctl status redis
























二、配置 Redis 密码

  1. 修改 Redis 配置文件编辑 Redis 主配置文件/etc/redis.conf

    sudo vim /etc/redis.conf



  2. 配置密码

    requirepass Shyshy521521!

    注意:客户端连接时需输入原始密码your_redis_password),Redis 会自动对输入的密码进行 MD5 哈希后与配置值比对。




  3. 保存配置并重启 Redis

    sudo systemctl restart redis



三、配置远程访问

默认 Redis 仅允许本地(127.0.0.1)访问,需修改配置允许远程连接。

  1. 修改绑定地址再次编辑/etc/redis.conf,找到bind参数,将其改为允许所有 IP 访问(或指定具体 IP):

    # 注释默认的本地绑定,或改为0.0.0.0(允许所有IP)# bind 127.0.0.1bind 0.0.0.0









  2. **关闭保护模式(可选,按需配置)**保护模式(protected-mode)默认开启,仅允许本地连接。若需远程访问,将其关闭:

    protected-mode no



  3. **配置防火墙(允许 Redis 端口)**Redis 默认端口为6379,需开放防火墙端口:

    # 开放6379端口(TCP)sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
    # 重新加载防火墙规则sudo firewall-cmd --reload















  4. 重启 Redis 使配置生效

    sudo systemctl restart redis



四、验证配置

  1. 本地验证密码连接 Redis 并使用原始密码验证:

    redis-cli
    # 输入密码127.0.0.1:6379> AUTH Shyshy521521!OK  # 验证成功















  2. 远程验证访问在另一台机器上通过redis-cli连接(替换your_server_ip为 Redis 服务器 IP):

    redis-cli -h your_server_ip -p 6379
    # 输入密码your_server_ip:6379> AUTH your_redis_passwordOK  # 远程访问成功















PostgreSQL


一、安装 PostgreSQL

  1. 安装 PostgreSQL 官方源PostgreSQL 在 CentOS 默认源中版本较旧,建议使用官方源:

    #在安装PostgreSQL之前,需要安装一些依赖包。sudo yum install -y gcc make bison readline-devel openssl-devel python2-devel python3-devel
    # 安装RPM源(以PostgreSQL 12为例,可根据需求替换版本)yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    #删除已存在的PGyum remove -y postgresql* && rm -rf  /var/lib/pgsql && rm -rf  /usr/pgsql* && userdel -r postgres && groupdel postgres
    yum install -y sysbench






























  2. 安装 PostgreSQL 服务器及客户端

    # 安装服务器和客户端yum install -y postgresql15 postgresql15-server






  3. 初始化数据库并启动服务

    # 初始化数据库sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
    # 启动服务并设置开机自启systemctl start postgresql-15systemctl enable postgresql-15
    # 验证服务状态systemctl status postgresql-15



























二、配置数据库密码

  1. 切换到 postgres 用户PostgreSQL 默认创建postgres系统用户,需通过该用户操作数据库:

    su - postgres



  2. 登录数据库并修改密码

    # 登录PostgreSQL控制台psql
    # 修改默认用户(postgres)的密码ALTER USER postgres WITH PASSWORD 'Shyshy521521!';
    # 退出控制台\q
























  3. 返回 root 用户

    exit



三、配置远程访问

  1. **修改 PostgreSQL 配置文件(允许远程连接)**编辑pg_hba.conf(控制访问权限):

    vim /var/lib/pgsql/15/data/pg_hba.conf

    修改本地连接的认证方式(让密码生效)

    PostgreSQL 15 默认用 scram-sha-256 认证,而你设置的密码(Shyshy521521!)需改为 md5 认证才能正常登录,修改如下:

    添加远程访问规则(允许外部机器连接)

    在文件末尾新增一行,允许所有 IP 通过密码(md5)访问(生产环境建议把 0.0.0.0/0 改为具体 IP 段,如 192.168.1.0/24):

    host    all             all             0.0.0.0/0               md5

    修改后完整关键配置片段(参考)

    # "local" is for Unix domain socket connections onlylocal   all             all                                     peer# IPv4 local connections:host    all             all             127.0.0.1/32            md5# IPv6 local connections:host    all             all             ::1/128                 md5# Allow replication connections from localhost, by a user with the# replication privilege.local   replication     all                                     peerhost    replication     all             127.0.0.1/32            scram-sha-256host    replication     all             ::1/128                 scram-sha-256# 新增远程访问规则host    all             all             0.0.0.0/0               md5

    修改完保存文件后,重启 PostgreSQL 15 服务使配置生效:

    systemctl restart postgresql-15
















































    • 原配置(IPv4 本地连接):

      host    all             all             127.0.0.1/32            scram-sha-256



  • 改为:

    host    all             all             127.0.0.1/32            md5



  • 原配置(IPv6 本地连接,可选修改,若用不到 IPv6 可忽略):

    host    all             all             ::1/128                 scram-sha-256



  • 改为:

    host    all             all             ::1/128                 md5



  1. 修改监听地址编辑postgresql.conf

    vim /var/lib/pgsql/15/data/postgresql.conf

    找到listen_addresses,修改为监听所有地址:

    listen_addresses = '*'  # 默认为'localhost',改为'*'

    找到#password_encryption = scram-sha-256 # scram-sha-256 or md5

    修改为

    password_encryption = md5






  2. **开放防火墙端口(5432)**PostgreSQL 默认端口为 5432,需配置防火墙允许外部访问:

    # 开放5432端口firewall-cmd --add-port=5432/tcp --permanent# 重新加载防火墙规则firewall-cmd --reload








  3. 重启 PostgreSQL 服务使配置生效:

    systemctl restart postgresql-15
    # 切换到 postgres 用户su - postgres#重置 postgres 用户密码(让 md5 加密生效)# 连接数据库psql -U postgres -d postgres
    # 重置密码(即使密码不变,也会强制以 md5 格式存储)ALTER USER postgres PASSWORD 'Shyshy521521!';
    # 验证密码加密方式(必须显示 md5 开头)SELECT usename, passwd FROM pg_shadow WHERE usename = 'postgres';# 正确输出示例:postgres | md5e7723575f28360d35f59243d45b2993d(开头为 md5)
    # 重载配置SELECT pg_reload_conf();\q  # 退出 psql



































    四、验证远程访问

    在另一台机器上使用客户端工具(如psql或 Navicat)连接:

    # 示例:通过psql远程连接psql -h 10.132.47.65 -U postgres -d postgres

    输入密码Shyshy521521!,若成功登录则配置完成。

    五、PostgreSQL创建数据库(harbor使用)

    # 切换到 postgres 用户(PostgreSQL 默认管理员用户)su - postgres# 连接本地 PostgreSQL 服务(容器内无需指定主机和端口,默认连接 localhost:5432psql -d postgres

    #手动创建 Harbor 所需的三个数据库-- 1. 创建 Harbor 核心数据库(必须)CREATE DATABASE harbor_core;-- 2. 创建 Notary 服务数据库(Notary 组件依赖)CREATE DATABASE harbor_notary_server;-- 3. 创建 Notary 签名数据库(Notary 组件依赖)CREATE DATABASE harbor_notary_signer;-- 验证数据库是否创建成功(可选,确认结果)\l
    #退出容器-- 退出 PostgreSQL 命令行\q-- 退出 postgres 用户,回到 root 用户exit

    环境配置汇总表

    一、机器基础信息表

    机器名称
    机器 IP
    系统版本
    硬件配置
    部署数据库 / 服务
    mysql_master
    10.132.47.65
    CentOS 7.9
    4 核 8G
    MySQL 8.0.44(MGR 主节点)、Redis、PostgreSQL 15
    mysql_node1
    10.132.47.66
    CentOS 7.9
    4 核 8G
    MySQL 8.0.44(MGR 从节点)
    mysql_node2
    10.132.47.67
    CentOS 7.9
    4 核 8G
    MySQL 8.0.44(MGR 从节点)

    二、数据库用户及密码表

    部署节点 IP
    数据库类型
    用户名
    密码
    权限范围
    用途
    10.132.47.65
    MySQL 8.0.44
    root
    Shyshy521521!
    所有权限(.
    超级管理员
    10.132.47.65
    MySQL 8.0.44
    mgr_user
    Shyshy521521!
    REPLICATION SLAVE 权限
    MGR 节点间通信
    10.132.47.65
    MySQL 8.0.44
    remote
    Shyshy521521!
    所有权限(.
    第三方工具远程连接
    10.132.47.66
    MySQL 8.0.44
    root
    Shyshy521521!
    所有权限(.
    超级管理员
    10.132.47.66
    MySQL 8.0.44
    mgr_user
    Shyshy521521!
    REPLICATION SLAVE 权限
    MGR 节点间通信
    10.132.47.66
    MySQL 8.0.44
    remote
    Shyshy521521!
    所有权限(.
    第三方工具远程连接
    10.132.47.67
    MySQL 8.0.44
    root
    Shyshy521521!
    所有权限(.
    超级管理员
    10.132.47.67
    MySQL 8.0.44
    mgr_user
    Shyshy521521!
    REPLICATION SLAVE 权限
    MGR 节点间通信
    10.132.47.67
    MySQL 8.0.44
    remote
    Shyshy521521!
    所有权限(.
    第三方工具远程连接
    10.132.47.65
    Redis
    -
    Shyshy521521!
    全量操作权限
    Redis 访问认证
    10.132.47.65
    PostgreSQL 15
    postgres
    Shyshy521521!
    超级管理员权限
    数据库管理、Harbor 连接

    三、数据库访问方式表

    部署节点 IP
    数据库类型
    服务端口
    监听地址
    访问方式(本地 / 远程)
    认证方式
    远程访问命令示例
    10.132.47.65
    MySQL 8.0.44
    3306
    0.0.0.0
    本地 + 远程
    mysql_native_password
    mysql -h 10.132.47.65 -u remote -pShyshy521521!
    10.132.47.66
    MySQL 8.0.44
    3306
    0.0.0.0
    本地 + 远程
    mysql_native_password
    mysql -h 10.132.47.66 -u remote -pShyshy521521!
    10.132.47.67
    MySQL 8.0.44
    3306
    0.0.0.0
    本地 + 远程
    mysql_native_password
    mysql -h 10.132.47.67 -u remote -pShyshy521521!
    10.132.47.65
    Redis
    6379
    0.0.0.0
    本地 + 远程
    密码认证
    redis-cli -h 10.132.47.65 -p 6379 -a Shyshy521521!
    10.132.47.65
    PostgreSQL 15
    5432
    *(所有地址)
    本地 + 远程
    md5 密码认证
    psql -h 10.132.47.65 -U postgres -d harbor_core

    【声明】内容源于网络
    0
    0
    SRE云原生
    专注于分享运维、Devops、网络安全以及SRE云原生相关知识,内容包括但不限于自动化运维、云架构、云监控、云安全、AI、AWS以及攻防渗透等。内容多以原创为主,旨在于编写高质量文章。
    内容 35
    粉丝 0
    SRE云原生 专注于分享运维、Devops、网络安全以及SRE云原生相关知识,内容包括但不限于自动化运维、云架构、云监控、云安全、AI、AWS以及攻防渗透等。内容多以原创为主,旨在于编写高质量文章。
    总阅读30
    粉丝0
    内容35