Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Registro de imagens de contêiner e Registro do Kubernetes

Registros são segredos do Kubernetes que contêm credenciais usadas para autenticar com registros de contêiner privados.

A palavra "registro" pode significar duas coisas, dependendo de se é usada para se referir a um registro de contêiner ou a um registro do Kubernetes:

  • Um Registro de imagens de contêiner (anteriormente "registro Docker") contém imagens de contêiner que você pode puxar e implantar. O registro é uma aplicação do lado do servidor, sem estado e escalável, que armazena e permite que você distribua imagens de contêiner.

  • O registro do Kubernetes é um segredo de pull de imagem que sua implantação usa para autenticar com um registro de imagens.

Implantações usam o segredo do registro do Kubernetes para autenticar com um registro de imagens de contêiner privado e, em seguida, puxar uma imagem de contêiner hospedada nele.

Atualmente, as implantações puxam as credenciais do registro privado automaticamente apenas se a carga de trabalho for criada na interface do Rancher e não quando é criada via kubectl.

Criando um Registro em Namespaces

Pré-requisitos:

Você deve ter um registro privado disponível já implantado.

Se você precisar criar um registro privado, consulte as páginas de documentação para seu respectivo runtime:

  1. No canto superior esquerdo, clique em ☰ > Gerenciamento de Cluster.

  2. Vá para o cluster onde você deseja adicionar um registro e clique em Explorar.

  3. Na navegação à esquerda, clique em Armazenamento  Segredos ou Mais Recursos  kernel  Segredos.

  4. Clique em Criar.

  5. Clique em Registro.

  6. Insira um Nome para o registro.

    O Kubernetes classifica segredos, certificados e registros todos como segredos, e nenhum segredo em um projeto ou namespace pode ter nomes duplicados. Portanto, para evitar conflitos, seu registro deve ter um nome único entre todos os segredos dentro do seu espaço de trabalho.

  7. Selecione um namespace para o registro.

  8. Selecione o site que hospeda seu registro privado. Em seguida, insira as credenciais que autenticam com o registro. Por exemplo, se você usar o Docker Hub, forneça seu nome de usuário e senha do Docker Hub.

  9. Clique em Salvar.

Resultado:

  • Seu segredo é adicionado ao namespace que você escolheu.

  • Você pode visualizar o segredo na interface do Rancher clicando em Armazenamento  Segredos ou Mais Recursos  kernel  Segredos.

  • Qualquer carga de trabalho que você criar na interface do Rancher terá as credenciais para acessar o registro se a carga de trabalho estiver dentro do escopo do registro.

Criando um Registro em Projetos

Pré-requisitos:

Você deve ter um registro privado disponível já implantado.

Se você precisar criar um registro privado, consulte as páginas de documentação para seu respectivo runtime:

Antes da versão 2.6, os segredos precisavam estar em um escopo de projeto. Os projetos não são mais obrigatórios, e você pode usar o namespace em vez disso. Como resultado, a interface do Rancher foi atualizada para refletir essa nova funcionalidade. No entanto, você ainda pode criar um registro com escopo de projeto, se desejar. Use os seguintes passos para fazê-lo:

  1. No canto superior esquerdo, clique em ☰ > Configurações Globais no menu suspenso.

  2. Clique em Flags de Recursos.

  3. Vá para a flag de recurso legacy e clique em Ativar.

  4. No canto superior esquerdo, clique em ☰ > Gerenciamento de Cluster.

  5. Vá para o cluster onde você deseja adicionar um registro e clique em Explorar.

  6. Na navegação à esquerda, clique em Armazenamento  Segredos ou Mais Recursos  kernel  Segredos.

  7. Clique em Criar.

  8. Clique em Registro.

  9. Na barra de navegação superior, filtre para ver apenas um projeto.

  10. Insira um Nome para o registro.

    O Kubernetes classifica segredos, certificados e registros todos como segredos, e nenhum segredo em um projeto ou namespace pode ter nomes duplicados. Portanto, para evitar conflitos, seu registro deve ter um nome único entre todos os segredos dentro do seu espaço de trabalho.

  11. Selecione um namespace para o registro.

  12. Selecione o site que hospeda seu registro privado. Em seguida, insira as credenciais que autenticam com o registro. Por exemplo, se você usar o Docker Hub, forneça seu nome de usuário e senha do Docker Hub.

  13. Clique em Salvar.

Resultado:

  • Seu segredo é adicionado ao projeto individual que você escolheu.

  • Você pode visualizar o segredo na interface do Rancher clicando em Armazenamento  Segredos ou Mais Recursos  kernel  Segredos.

  • Qualquer carga de trabalho que você criar na interface do Rancher terá as credenciais para acessar o registro se a carga de trabalho estiver dentro do escopo do registro.

Registros com escopo de projeto no cluster local são visíveis apenas quando um único projeto é selecionado.

Usando um Registro Privado

Você pode implantar uma carga de trabalho com uma imagem de um registro privado através da interface do Rancher, ou com kubectl.

Usando o Registro Privado com a Interface do Rancher

Para implantar uma carga de trabalho com uma imagem do seu registro privado,

  1. No canto superior esquerdo, clique em ☰ > Gerenciamento de Cluster.

  2. Vá para o cluster onde você deseja implantar uma carga de trabalho e clique em Explorar.

  3. Clique em Carga de Trabalho.

  4. Clique em Criar.

  5. Selecione o tipo de carga de trabalho que deseja criar.

  6. Digite um nome único para a carga de trabalho e escolha um namespace.

  7. No campo Imagem do Contêiner, insira o caminho da imagem no seu registro privado. Por exemplo, se o seu registro privado estiver no Quay.io, você pode usar quay.io/<Quay profile name>/<Image name>.

  8. Clique em Criar.

Resultado: Sua implantação deve iniciar, autenticar-se usando as credenciais do registro privado que você adicionou na interface do Rancher e puxar a imagem do contêiner que você especificou.

Usando o Registro Privado com kubectl

Quando você cria a carga de trabalho usando kubectl, precisa configurar o pod para que seu YAML tenha o caminho para a imagem no registro privado. Você também precisa criar e referenciar o segredo do registro, pois o pod só obtém automaticamente acesso às credenciais do registro privado se for criado na interface do Rancher.

O segredo deve ser criado no mesmo namespace onde a carga de trabalho é implantada.

Abaixo está um exemplo pod.yml para uma carga de trabalho que usa uma imagem de um registro privado. Neste exemplo, o pod usa uma imagem do Quay.io, e o .yml especifica o caminho para a imagem. O pod se autentica com o registro usando credenciais armazenadas em um segredo do Kubernetes chamado testquay, que é especificado em spec.imagePullSecrets no campo name:

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: quay.io/<Quay profile name>/<image name>
  imagePullSecrets:
  - name: testquay

Neste exemplo, o segredo chamado testquay está no namespace padrão.

Você pode usar kubectl para criar o segredo com as credenciais do registro privado. Este comando cria o segredo chamado testquay:

kubectl create secret docker-registry testquay \
    --docker-server=quay.io \
    --docker-username=<Profile name> \
    --docker-password=<password>

Para ver como o segredo é armazenado no Kubernetes, você pode usar este comando:

kubectl get secret testquay --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode

O resultado se parece com isto:

{"auths":{"quay.io":{"username":"<Profile name>","password":"<password>","auth":"c291bXlhbGo6dGVzdGFiYzEyMw=="}}}

Após a implantação da carga de trabalho, você pode verificar se a imagem foi puxada com sucesso:

kubectl get events

O resultado deve ser semelhante a isto:

14s         Normal    Scheduled          Pod    Successfully assigned default/private-reg2 to minikube
11s         Normal    Pulling            Pod    pulling image "quay.io/<Profile name>/<image name>"
10s         Normal    Pulled             Pod    Successfully pulled image "quay.io/<Profile name>/<image name>"

Para mais informações, consulte a documentação do Kubernetes sobre criando um pod que utiliza seu segredo.