Harbor高可用集群设计及部署(实操+视频),基于离线安装方式

Posted 键客李大白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Harbor高可用集群设计及部署(实操+视频),基于离线安装方式相关的知识,希望对你有一定的参考价值。


Harbor高可用集群设计及部署(实操+视频),基于离线安装方式_Harbor私有镜像仓库

 【摘要】基于离线安装方式的Harbor高可用集群部署方案,从理论到实践,文档 + 视频结合的方式全面、详细的对部署过程进行解读。



1.环境说明


1.1 架构图

 Harbor高可用集群设计及部署(实操+视频),基于离线安装方式_运维_02

 

1.2 主机清单

IP地址

主机名

描述

192.168.2.107

harbor1

Harbor实例1,8021端口

192.168.2.108

harbor2

Harbor实例2,8021端口

192.168.2.110

harbor-data

部署Harbor实例的共享存储、外部数据库、外部缓存服务

192.168.2.111

/

负载均衡VIP,8121端口

 

1.3 集群拓扑图

 Harbor高可用集群设计及部署(实操+视频),基于离线安装方式_云原生_03

 

1.4 服务版本

相关服务的版本要求如表:

服务

版本要求

安装版本

Harbor

/

2.3.5

Docker

17.06.0+

19.03.8

Docker-compose

1.18.0+

v2.2.3

Redis

6.0.16

6.2.7

PostgreSQL

v13.2+

13.5

 

2.主机初始化

Harbor实例主机进行初始化

  •   安装docker
  •   安装docker-compose
  •   配置内核参数

 

2.1 安装docker

$ wget -O /etc/yum.repos.d/docker-ce.repo ​​https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo​​
$ yum install -y docker-ce
$ systemctl enable --now docker
$ systemctl status docker
$ cat <<EOF > /etc/docker/daemon.json

"registry-mirrors": ["https://xcg41ct3.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors":
["https://3hjcmqfe.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts":
"max-size": "500m",
"max-file": "2"


EOF
$ systemctl daemon-reload
$ systemctl restart docker

exec-opts": ["native.cgroupdriver=systemd"],     #驱动器

registry-mirrors: 镜像加速地址,可多个
max-file: log最多保留数量
live-restore: 重启docker不重启容器,多用于k8s上

 

2.2 安装docker-compose

安装docker-compose 1.18.0以上的版本,本处安装v2.2.3版本。

$ wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64
$ mv
docker-compose-linux-x86_64 /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ docker-compose version
Docker Compose version v2.2.3


2.3 配置内核参数

$ modprobe br_netfilter
$ cat >> /etc/sysctl.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1 #路由转发
EOF
$ sysctl -p

3.使用NFS提供外部存储


192.168.2.110部署NFS服务提供共享存储给Harbor1实例、Harbor2实例使用。

192.168.2.110作为NFS服务端,harbor实例为客户端。


3.1 部署NFS服务端

1)安装并启动nfs

$ yum install -y  nfs-utils 
$ systemctl start nfs && systemctl enable nfs && systemctl status nfs
$ chkconfig nfs on #设置为开机自启

注意:正在将请求转发到“systemctl enable nfs.service”。

2)创建共享目录

客户端的数据将远程存入到共享目录下。

$ mkdir -p /data/harbor_data

3)修改配置

$ cat /etc/exports 
/data/harbor_data 192.168.2.0/24(rw,no_root_squash) #允许哪个网段的客户端使用指定共享目录
$ exportfs -arv #使配置文件生效
exporting 192.168.2.0/24:/data/harbor_data

    Harbor高可用集群设计及部署(实操+视频),基于离线安装方式_运维_04

4)重启nfs服务

$ systemctl restart nfs

5)检查共享目录信息

$ showmount 
-e localhost
Export list for localhost:
/data/harbor_data


3.2 部署客户端

在harbor1和harbor2上操作

$ yum -y install nfs-utils
$ systemctl start nfs-utils && systemctl enable nfs-utils && systemctl status nfs-utils


3.3 客户端挂载NFS共享存储

在harbor1和harbor2节点操作,创建实例的存储目录,然后挂载道NFS。

$ mkdir -p /data/harbor_data 
$ cat <<EOF >> /etc/fstab
192.168.2.110:/data/harbor_data
/data/harbor_data nfs
defaults 0 0
EOF
$ mount -a

 挂载格式:NFSIP:共享目录   本地目录  nfs defaults 0 0

测试是否可以正常使用:

[root@harbor2 ~]# touch 
/data/harbor_data/test.txt
[root@harbor1 ~]# ls /data/harbor_data/
test.txt

 

4.部署Redis缓存服务(源码)


Harbor高可用集群设计及部署(实操+视频),基于离线安装方式_云原生_05

 192.168.2.110部署Redis缓存服务,为harbor1和harbor2实例提供外部redis缓存服务。

Redis是一款高性能的key/value分布式内存数据库。

 

4.1 下载安装包

[root@harbor-data ~]# wget https://download.redis.io/releases/redis-6.2.7.tar.gz

 

4.2 安装依赖包

[root@harbor-data ~]#  yum install  -y  gcc gcc-c++

 

4.3 源码编译

[root@harbor-data ~] mkdir -p /app/
[root@harbor-data ~] tar zxvf redis-6.2.7.tar.gz -C /app
[root@harbor-data ~] cd /app/redis-6.2.7/
[root@harbor-data redis-6.2.7]# make #编译
[root@harbor-data redis-6.2.7]# make install #安装


4.4 修改配置文件

redis默认只支持本地使用,本处需要修改为外部可连接;

redis启动方式;

redis远程连接密码;

[root@harbor-data ~]# vim  /app/redis-6.2.7/redis.conf 
#bind 127.0.0.1 -::1 #75行,注释掉bind的行,允许任何主机连接;
daemonize yes #259行,将no修改为yes,使redis可以使用守护进程方式启动;
requirepass lidabai666 #903行,设置redis连接的auth密码(lidabai666)

 

4.5 启动Redis服务

前面配置了使用守护进程方式启动,所以直接使用systemctl则可以启动redis服务。

[root@harbor-data redis-6.2.7]# pwd
/app/redis-6.2.7
[root@harbor-data redis-6.2.7]# redis-server redis.conf

 

4.6 查看Redis服务版本

[root@harbor-data redis-6.2.7]# redis-cli -v
redis-cli 6.2.7

 

4.7 查看端口

redis默认监听6379端口

[root@harbor-data redis-6.2.7]# ps aux | grep  6379
root 6200 0.1 0.2 162416 10020 ? Ssl 17:59 0:00 redis-server *:6379
root 6231 0.0 0.0 112720 984 pts/0 R+ 18:01 0:00 grep --color=auto 6379

 

4.8 客户端连接Redis

harbor1和harbor2作为redis客户端

客户端使用redis-cli工具连接Redis服务器

[root@harbor-data redis-6.2.7]# which redis-cli      #查看redis-cli工具位置
/usr/local/bin/redis-cli
[root@harbor-data redis-6.2.7]# scp /usr/local/bin/redis-cli 192.168.2.107:/usr/local/bin/
[root@harbor-data redis-6.2.7]# scp /usr/local/bin/redis-cli 192.168.2.108:/usr/local/bin/
[root@harbor1 ~]# redis-cli -h 192.168.2.110 -p 6379 -a lidabai666

-a参数指定redis连接密码


5.部署PostgreSQL外部数据库服务(源码)


在192.168.2.110主机以源码的方式安装PostgreSQL数据库服务,为harbor1和harbor2实例提供共享存储。

 

5.1 新建postgres用户

默认超级用户(root)不能启动postgresql,需要手动建用户postgres。

[root@harbor-data ~]# useradd postgres
[root@harbor-data ~]# id postgres
uid=1000(postgres) gid=1000(postgres) 组=1000(postgres)


5.2 安装依赖包

[root@harbor-data ~]# yum -y install readline-devel  zlib-devel  gcc zlib


5.3 下载解压源码包

$ wget https://ftp.postgresql.org/pub/source/v13.5/postgresql-13.5.tar.gz --no-check-certificate
$ tar zxvf postgresql-13.5.tar.gz -C /app/


5.4 编译安装

[root@harbor-data ~]# cd /app/postgresql-13.5/
[root@harbor-data postgresql-13.5]# ./configure --prefix=/usr/local/postgresql
[root@harbor-data postgresql-13.5]# make && make install

 

5.5 创建数据目录

$ mkdir -p /data/postgresql/data
$ chown -R postgres:postgres /usr/local/postgresql/
$ chown -R postgres:postgres /data/postgresql/data/

5.6 设置postgres环境变量

[root@harbor-data postgresql-13.5]# su  - postgres
[postgres@harbor-data ~]$ vim + .bash_profile
PGHOME=/usr/local/postgresql #psql安装目录
export PGHOME
PGDATA=/data/postgresql/data #数据库目录
export PGDATA
PATH=$PATH:$HOME/bin:$HOME/.local/bin:$PGHOME/bin
export PATH
[postgres@harbor-data ~]$ source ./.bash_profile
[postgres@harbor-data ~]$ which psql
/usr/local/postgresql/bin/psql
  • 查看版本
[postgres@harbor-data ~]$ psql -V
psql (PostgreSQL) 13.5

 

5.7 初始化数据库

由于 Red Hat 系列发行版的政策,PostgreSQL 安装不会启用自动启动或自动初始化数据库。要完成数据库安装,您需要根据您的发行版执行以下步骤:

[postgres@ceph3 ~]$ initdb
......
You can change this by editing pg_hba.conf or
using the option -A, or
--auth-local and 基于共享存储的Harbor高可用-Docker部署方案

基于共享存储的Harbor高可用-Docker部署方案

harbor基于keepalive高可用部署

Prometheus监控Harbor(二进制版)

k8s-高可用架构设计

ansible + kubeasz 二进制部署K8S高可用集群方案