Como montar seu próprio Registry Privado com Harbor

Como montar seu próprio Registry Privado com Harbor

Hoje, no blog da 4Linux, sobre Registry Privado e em como montar o nosso com o Harbor.

O que é um Registry

Quando falamos de contêineres, sabemos que para ele exista, precisamos de uma imagem que vai conter todos os binários e dependências da aplicação. E essa imagem precisa vir de algum “lugar”.
Dai entra o Registry, lugar onde vamos armazenar e versionar a imagem da nossa aplicação. No mercado existe várias ferramentas que oferecem isso, como o Docker Hub, que é o maior repositório público de imagens de contêineres. Ele possui planos para você utilizar de forma privada, assim como temos o ECR da AWS, entre outros.

A vantagem de possuir um Registry Privada são inúmeras, desde maior controle das imagens, integrações com outras ferramentas, ter conhecimento da autenticidade da imagem, etc.
O objetivo do nosso post hoje é mostrar uma das tantas alternativas existentes que é o Harbor, onde conseguimos fazer integração com LDAP, Scan de vulnerabilidade entre outros recursos.

Bora lá

Harbor

O Harbor é um registry Open Source que protege artefatos com políticas e controle de acesso baseado em função, garante que as imagens sejam verificadas e livres de vulnerabilidades e assine imagens como confiáveis. Ele é bem interessante para ambiente e vamos colocar a mão na massa!

 

Pré-requisitos

Para que possamos utilizar o Harbor, precisamos ter no nosso ambiente as seguintes configurações de hardware e software:

RecursosMinimoRecomendado
CPU2 CPU4 GB
Memória4 GB8 GB
Disco40 GB160 GB
  • Docker 17.04 ou superior
  • Docker-compose instalado

Para facilitar a criação do nosso ambiente, vou disponibilizar para vocês um repositório com a criação do ambiente de forma automatizada com o Vagrant. Para poder executar esse ambiente, vocês vão precisar ter instalado:

Feito isso, basta clonar o repositório e inicializar o Vagrant para ele criar a VM:

git clone https://github.com/silvemerson/harbor-labs.git/

cd harbor-labs

vagrant up

Instalando o Harbor

Acesse a VM utilizando o comando abaixo e se torne root. 

vagrant ssh 

sudo su

Faça o Download do Harbor na versão 2.6.0

wget https://github.com/goharbor/harbor/releases/download/v2.6.0/harbor-online-installer-v2.6.0.tgz

Após isso, descompacte o arquivo:

tar xzvf harbor-online-installer-v2.6.0.tg 

Gere os certificados:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout registry.4labs.example.key -out registry.4labs.example.crt -subj "/CN=registry/O=4Labs/OU=DevOps" -addext "subjectAltName = DNS:registry.4labs.example"

Gere um PEM do certificado:

openssl x509 -inform PEM -in registry.4labs.example.crt -out registry.4labs.example.cert

Crie um diretório que vai armazenar os certificados:

mkdir -p /data/certs

Realize a cópia dos arquivos gerados:

cp registry.4labs.example.* /data/certs

Crie o diretório para seu Registry no Docker:

mkdir -p /etc/docker/certs.d/registry.4labs.example/

Copie os arquivos gerados para o o diretório criado:

cp registry.4labs.example.cert /etc/docker/certs.d/registry.4labs.example/
cp registry.4labs.example.key /etc/docker/certs.d/registry.4labs.example/

cp registry.4labs.example.crt /etc/docker/certs.d/registry.4labs.example/ca.crt

Inicializando o Harbor

Realize o clone do repositório harbor-labs e copie o arquivo harbor.yml para o diretório do harbor

git clone https://github.com/silvemerson/harbor-labs.git 
cp harbor-labs/harbor/harbor.yml ~/harbor

Execute os scrips abaixo para preparar o ambiente:

cd ~/harbor
./prepare

Execute a criação do ambiente com o examinador Trivy:

./install.sh --with-trivy

Mapeie no seu /etc/hosts a seguinte linha:

172.16.0.103 registry registry.4labs.example

Por fim, acesse o Harbor pelo navegador:

https://registry.4labs.example

Credenciaisde acesso
Usuárioadmin
Senha4linux

Nosso ambiente em funcionamento:

E por hoje é só pessoal, no próximo post, vamos conectar ao nosso Registry Harbor, enviar imagens e analisar vulnerabilidades.

Não se esqueçam de compartilhar em suas redes sociais.

Até a próxima.

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Guia Prático: Configurando o Prometheus em um Cluster Kubernetes
Próxima Descubra como o Rundeck pode otimizar suas tarefas de sysadmin

About author

Emerson Silva
Emerson Silva 10 posts

Desenvolvedor de Infraestrutura e Monitoramento, atua como Analista de Infraestrutura na 4Linux, entusiasta DevOps e apaixonado por software livre

View all posts by this author →

Você pode gostar também

Segurança

Melhore a segurança do seu ambiente Kubernetes com práticas eficazes

A ampla utilização do Kubernetes (K8S) em ambientes produtivos traz uma alerta, de como esses ambientes estão sendo usados em relação as configurações e boas práticas de segurança da informação.

Containers

Descubra como otimizar seu cluster Kubernetes com o plugin de rede Calico

Olá mundo DevOps! Nesse post irei mostrar como se comporta um cluster Kubernetes quando trabalhamos com nós de trabalho divididos em várias instâncias cloud como Amazon Web Services (AWS), Google

DevOps

Implantação simplificada do WordPress com Docker e Ansible: Guia passo a passo

A implantação do WordPress pode ser uma tarefa um pouco demorada, desde a configuração do servidor web até a instalação do banco de dados, há vários passos envolvidos. Mas e