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:
Recursos | Minimo | Recomendado |
---|---|---|
CPU | 2 CPU | 4 GB |
Memória | 4 GB | 8 GB |
Disco | 40 GB | 160 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:
- Vagrant (https://developer.hashicorp.com/vagrant/docs/installation)
- VirutalBox 6.1 (https://www.virtualbox.org/wiki/Download_Old_Builds_6_1)
- Git (https://git-scm.com/downloads)
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
Credenciais | de acesso |
---|---|
Usuário | admin |
Senha | 4linux |
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:
About author
Você pode gostar também
Aprenda Docker e Openshift na versão mais recente com a 4Linux
A 4Linux modernizou o curso de Docker. Agora você vai poder aprender o docker na versão mais recente ( V17.03 ). Além disso o curso ganhou novos assuntos e o
Guia completo: Implantação de MongoDB resiliente no Google Kubernetes Engine
Este guia aborda a implantação de um MongoDB resiliente no GKE, incluindo etapas para configurar um StatefulSet, serviço headless e inicializar o conjunto réplica. Aprenda a utilizar recursos do GKE
Guia para atualizar o AWS Load Balancer Controller após migração do Kubernetes 1.21 para 1.22
Após atualizar o cluster do Kubernetes da versão 1.21 para a 1.22, você pode precisar atualizar o AWS Load Balancer Controller (anteriormente conhecido como ALB Ingress Controller) para garantir que