Guía de Instalación de Harbor - Registro de Contenedores

Guía de Instalaicón de Harbor

  1. Visión General de la Arquitectura

  1. Requisitos Previos

2.1 Requisitos de Hardware

Según la documentación oficial, se recomienda la siguiente configuración mínima:

  • 4 núcleos de CPU
  • 8 GB de memoria RAM
  • 160 GB de espacio en disco

2.2 Requisitos de Software

Antes de proceder con la instalación, asegúrese de tener instalado:

  • Docker (versión 19.03 o superior)
  • Docker Compose
  • OpenSSL
  1. Proceso de Instalación

3.1 Configuración de LVM

Para gestionar el almacenamiento de forma eficiente, configuramos un volumen lógico:

# Identificar discos disponibles
lsblk

# Crear volumen físico
pvcreate /dev/sdb

# Crear grupo de volúmenes
vgcreate registro /dev/sdb

# Crear volumen lógico (199GB)
lvcreate -L 199G -n registro registro

# Formatear volumen
mkfs.xfs /dev/registro/registro

# Montar temporalmente
mount /dev/registro/registro /datos/harbor/

# Configurar montage permanente en /etc/fstab
echo '/dev/registro/registro /datos/harbor/ xfs defaults 0 1' >> /etc/fstab

3.2 Instalación de Software Base

3.2.1 Instalación de Docker

#!/bin/bash
# Script de instalación de Docker

cd /usr/local/src
tar xf docker-19.03.15.tgz
cd docker
cp ./* /usr/bin

# Crear usuario y grupo
groupadd docker
useradd operador -g docker

# Configurar systemd para containerd
cat > /lib/systemd/system/containerd.service <<eof after="network.target" cat="" configurar="" container="" de="" delegate="yes" description="containerd" docker="" documentation="https://containerd.io" eof="" execstart="/usr/bin/containerd" execstartpre="-/sbin/modprobe" killmode="process" limitcore="infinity" limitnofile="infinity" limitnproc="infinity" local-fs.target="" oomscoreadjust="-999" overlay="" restart="always" restartsec="5" runtime="" socket="" tasksmax="infinity" type="notify" wantedby="multi-user.target"> /lib/systemd/system/docker.socket <<eof api="" cat="" configurar="" de="" description="Docker" docker="" eof="" for="" listenstream="/var/run/docker.sock" servicio="" socket="" socketgroup="docker" socketmode="0660" socketuser="root" the="" wantedby="sockets.target"> /lib/systemd/system/docker.service <<eof after="network-online.target" application="" container="" containerd="" containerd.service="" delegate="yes" description="Docker" docker.service="" docker.socket="" documentation="https://docs.docker.com" e="" enable="" engine="" eof="" execreload="/bin/kill" execstart="/usr/bin/dockerd" fd:="" firewalld.service="" habilitar="" hup="" iniciar="" killmode="process" limitcore="infinity" limitnofile="infinity" limitnproc="infinity" oomscoreadjust="-500" requires="docker.socket" restart="always" restartsec="2" servicios="" startlimitburst="3" startlimitinterval="60s" systemctl="" tasksmax="infinity" timeoutsec="0" type="notify" wantedby="multi-user.target" wants="network-online.target"></eof></eof></eof>

3.2.2 Instalación de Docker Compose

# Descargar Docker Compose v2.23.3
wget -c https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64
chmod a+x docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

3.3 Obtención del Paquete de Instalación

Descargue el instalador offline desde el repositorio oficial de Harbor:

https://github.com/goharbor/harbor/releases

3.4 Configuración del Sistema

3.4.1 Generación de Certificados SSL

# Crear directorio para certificados
mkdir -p /raiz/harbor/certificados

# Generar clave y certificado de CA
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 -key ca.key -out ca.crt

# Generar clave para el dominio
openssl genrsa -out midominio.key 4096
openssl req -sha512 -new -key midominio.key -out midominio.csr

# Crear archivo de extensiones
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=mi-dominio.com
DNS.2=registro
DNS.3=harbor-servidor
EOF

# Firmar certificado
openssl x509 -req -sha512 -days 3650 -CA ca.crt -extfile v3.ext -CAkey ca.key -CAcreateserial -in midominio.csr -out midominio.crt

3.4.2 Configuración de Harbor

# Descomprimir paquete
tar xf harbor-offline-installer-v2.5.0.tgz
cd harbor

# Configurar resolución de host
echo '192.168.1.100 mi-dominio.com' >> /etc/hosts

# Editar archivo de configuración harbor.yml
# Parámetros principales:
hostname: mi-dominio.com
http:
  port: 80
https:
  port: 443
  certificate: /raiz/harbor/certificados/midominio.crt
  private_key: /raiz/harbor/certificados/midominio.key
harbor_admin_password: MiContrasena123
database:
  password: MiContrasena123
data_volume: /datos/harbor

3.5 Inicialización y Arranque

# Generar archivos de configuración
./prepare

# Configurar Docker para certificados
mkdir -p /etc/docker/cert.d/mi-dominio.com
cp /raiz/harbor/certificados/midominio.crt /etc/docker/cert.d/mi-dominio.com/

# Reiniciar Docker
systemctl restart docker

# Instalar y ejecutar Harbor con módulos adicionales
./install.sh --with-trivy

Los parámetros adicionales inclyuen:

  • notary: Servicio de autenticación de imágenes
  • trivy: Escáner de vulnerabilidades
  • chartmuseum: Repositorio de charts Helm
  1. Verificación de la Instalación

4.1 Prueba de Autenticación desde Servidor

root@harbor-servidor:~/harbor# docker login mi-dominio.com
Username: admin
Password: 
Login Succeeded

4.2 Acceso a Interfaz Web

Acceda a la interfaz de administración a través del navegador:

https://mi-dominio.com

Credenciales por defecto:

  • Usuario: admin
  • Contraseña: configuada en harbor_admin_password

4.3 Prueba de Push de Imagen

# Etiquetar imagen existente
docker tag mi-imagen:latest mi-dominio.com/biblioteca/mi-imagen:latest

# Subir imagen al registry
docker push mi-dominio.com/biblioteca/mi-imagen:latest

Etiquetas: Harbor Docker container-registry DevOps linux

Publicado el 6-15 20:39