A documentao oficial est disponvel no link: https://goharbor.io/docs/2.7.0/.
Sumário das Etapas
- Noções Gerais sobre o Harbor
- Procedimentos de Instalao
- Implantao em ambiente local usando Docker Compose
- Desafios de Infraestrutura
- Configurao para Servio Offline
- Instalao e Verificao
- Adicnamento de Suporte SSL/TLS
- Habilitar Acesso via HTTPS
- Validao de Certificado
- Implantao em Cluster K8s via Helm
Viso Geral
O time desenvolvedor disponibiliza um ambiente de demonstrao ao pblico para teste funcional sem instalao local.
Link: https://demo.goharbor.io/harbor/projects
Apesar da funcionalidade demo, recomenda-se cadastro e login para explorao completa dos recursos.
Implantao via Docker Compose (Arquitetura Nica)
Caso prefira uma abordagem simples para ambientes de desenvolvimento ou testes unitrios, o uso do Docker Compose permite levantar os servios necessrios em uma nica mquina.
Pontualmente: Consulte a guia de configurao.
Requisitos de Infraestrutura
Antes de iniciar, assegure-se de que a mquina hospedeira atenda aos mnimos requisitos listados abaixo para evitar instabildiades futuras:
| Componente | Requisito Mnimo | Recomendado |
|---|---|---|
| Processador (CPU) | 2 Cores | 4 Cores |
| Memria RAM | 4 GB | 8 GB |
| Espaço em Disco | 40 GB | 160 GB |
Pré-requisitos de Software
| Aplicativo | Verso Exigida | Notas Tcnicas |
|---|---|---|
| Docker Engine | 17.06.0-ce+ | Veja instruções de instalação em docs.docker.com |
| Docker Compose | v1.18.0+ ou v2 | Plugin recomendado docker-compose-plugin |
| Openssl | Late | Necessário para gerar certificaddos digitais internos |
Configurao de Rede
Os seguintes portas devem estar livres no host para que os contêiners se comuniquem corretamente:
| Porta | Protocolo | Descrio |
|---|---|---|
| 443 | HTTPS | Acesso criptografado API e UI. Alterável em config. |
| 4443 | HTTPS | Notary Service (Confiança de Conteúdo). Opcional. |
| 80 | HTTP | Acesso no plano não criptografado. Redirecionamento ocorre. |
Baixar Pacote de Instalao
Para evitar dependncias externas complexas, utiliza-se a imagem offline que j inclui todas as imagens necessárias.
Disponível em Releases no GitHub: GitHub Releases.
Exemplo de download e extração:
user@host:~$ wget https://github.com/goharbor/harbor/releases/download/v2.6.3/harbor-offline-installer-v2.6.3.tgz
user@host:~$ tar xzvf harbor-offline-installer-v2.6.3.tgz
Configurao de Arquivos (Modo HTTP)
Para fins de teste inicial, configure o arquivo principal ignorando configurações de TLS.
cd harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
Edite o seguinte bloco conforme sua infraestrutura:
hostname: registry.exemplo.com
http:
port: 80
# Remova # para habilitar HTTPS futuramente
# https:
# port: 443
# certificate: /data/cert/server.crt
# private_key: /data/cert/server.key
# Credencial Administrativa Inicial
harbor_admin_password: AdminPassword2024!
# Configuracao do Banco de Dados PostgreSQL
database:
password: root123
max_idle_conns: 100
max_open_conns: 900
# Montagem do Volume Persistente
data_volume: /data
Aviso: Não utilize 'localhost' ou '127.0.0.1'. Defina o FQDN ou IP real do servidor.### Execuão da Instalaçao
Rodando o script de setup:
./install.sh
Observe o fluxo de carregamento das imagens base (cores, logs, banco, jobservice, nginx) e confirmacao de sucesso.
Verificacao dos processos ativos:
docker-compose top
Isso deve listar contêainers como harbor-core, harbor-db, registry, entre outros.
Acessabilidade do Sistema
Utilize as credenciais definidas no passo anterior (admin e senha configurada) para fazer login no painel administrativo.
Implantacao com Suporte TLS (HTTPS)
Em producao, o uso de HTTPS é mandatório. Isso exige um certificado válido assinado por uma CA reconhecida ou uso de ferramentas automatizadas como Let's Encrypt.
Obtencao de Certificados
Faça download dos arquivos .pem e .key. Se usar serviço comercial, baixe o bundle completo.
Movimente os arquivos para o diretório definido:
mkdir -p /data/cert
unzip harbor_cert_bundle.zip
mv *.pem /data/cert/
mv *.key /data/cert/
Habilitacao de HTTPS no Harbor
Atualize o arquivo harbor.yml novamente:
hostname: registry.seucertificado.com
# Habilitar HTTP apenas para redirecionar
http:
port: 80
https:
port: 443
certificate: /data/cert/registry.pem
private_key: /data/cert/registry.key
Reiniciar Ambiente
Execute o processo de preparacao antes de aplicar novas configurações:
# Preparacao dos novos configs
./prepare
# Encerra os servios atuais (dados sao preservados no volume data_volume)
docker-compose down -v
# Levanta novamente
docker-compose up -d
Verifique no navegador acessando https://seudoominio se o cadeado de segurança aparece.
Instalacao via Helm em Kubernetes
Para escalabilidade horizontal e alta disponibilidade, a instalacao native em cluster K8s é recomendada utilizando o pacote Helm.
Pre-condicoes do Clusters
- Kubernetes versao 1.10 ou superior
- Helm instalado (versao 2.8.0+)
- Ingress Controller ativo
- Banco de dados externo (PostgreSQL 9.6+) opcionalmente
- Redis clusterizado opcionalmente
- StorageClass ativa para PVCs dinamicos
Download dos Charts
helm repo add harbor https://helm.goharbor.io
helm fetch harbor/harbor --untar
Personalizacao do Valor (values.yaml)
O ficheiro de configurações padrão values.yaml precisa ser ajustado para apontar aos recursos externos do seu ambiente:
vim harbor/values.yaml
Modifique entradas chave relativas a Ingress, persistência de dados, e conexões de rede seguras.
Deploy do Release
helm install my-release harbor/harbor
Operações Básicas no Harbor
Gerenciamento de Projetos
O Harbor organiza as imagens por projetos. Ao criar um novo projeto, escolha a visibilidade:
- Publico: Qualquer usuário autenticado pode realizar pull (download).
- Privado: Apenas usuários com permissão explicita podem acessar.
Identificacao de Credenciais para Push
Para enviar imagens para o registro, obtenha as instruções de autenticação na página do projeto:
- Navegue até o projeto desejado.
- Selecione a aba 'Image Repository' ou similar.
- Copie o comando 'Push', contendo a URL do registro e suas credenciais.