Nesta página, explicamos como configurar um servidor de registro de contêineres para o Google Distributed Cloud (somente software) para VMware.
Esta página é destinada a administradores, arquitetos e operadores que configuram, monitoram e gerenciam a infraestrutura de tecnologia. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo do Google Cloud , consulte Tarefas e papéis de usuário comuns do GKE Enterprise.
Visão geral
Por padrão, durante a criação ou o upgrade do cluster, o Google Distributed Cloud extrai imagens
do sistema de gcr.io/gke-on-prem-release
usando a
conta de serviço de acesso a componentes.
Se quiser, você pode fornecer seu próprio servidor de registro de contêiner para que
as imagens do sistema sejam extraídas do seu servidor de registro particular.
O Google Distributed Cloud não é compatível com registros de contêineres não seguros. Ao iniciar o servidor de registro de contêineres, você precisa fornecer um certificado e uma chave. O certificado pode ser assinado por uma autoridade de certificação pública (CA, na sigla em inglês) ou autoassinado.
Criar um servidor do Container Registry
Para saber como criar um servidor de registro de contêineres, consulte Executar um registro acessível externamente na documentação do Docker.
Configurar o registro
Para usar um registro de contêiner particular, use a ferramenta de linha de comando gkectl
ou o Terraform.
gkectl
Adicione a seção
privateRegistry
ao arquivo de configuração do cluster de administrador antes de criar o cluster.
Quando esta seção é preenchida:
Quando você executa o comando
gkectl prepare
antes da criação ou upgrade do cluster, ele extrai as imagens do arquivo tar especificado no campobundlePath
do arquivo de configuração do cluster de administrador e envia as imagens para o servidor de registro particular.Durante a criação ou o upgrade do cluster, as imagens do sistema são extraídas do seu servidor de registro particular.
Terraform
Siga as etapas na guia "Terraform" em Criar um cluster de administrador para preencher o arquivo de configuração do cluster de administrador.
Adicione o seguinte ao arquivo de configuração do cluster de administrador:
private_registry_config { address = "ADDRESS" ca_cert = "CA_CERT" }
Substitua:
"ADDRESS"
: o endereço IP ou FQDN (nome de domínio totalmente qualificado) da máquina que executa o registro privado."CA_CERT"
: a chave pública do certificado da CA para o registro particular.
Continue com as etapas na guia "Terraform" em Criar um cluster de administrador para verificar o arquivo de configuração e o plano do Terraform e criar o cluster de bootstrap.
Ao executar o comando
gkectl register bootstrap
, ogkectl
solicita que você insira o nome de usuário e a senha do registro particular.
Durante a criação do cluster, as imagens do sistema são extraídas do seu servidor de registro privado.
Limitações com clusters avançados e o pacote completo
Há dois pacotes do Google Distributed Cloud disponíveis: completo e regular. Para determinar
qual pacote está na estação de trabalho de administrador, verifique o campo bundlePath
no
arquivo de configuração do cluster de administrador. Se o nome do arquivo terminar em -full
, o pacote
completo estará na estação de trabalho do administrador. Se o nome do arquivo não terminar em -full
, o pacote
normal estará na estação de trabalho do administrador.
Se você criou a estação de trabalho de administrador usando o comando gkeadm
, ele
cria a VM da estação de trabalho de administrador com o pacote completo e configura o
campo bundlePath
no arquivo de configuração do cluster de administrador.
Se o cluster avançado estiver ativado, haverá limitações ao usar o pacote completo com um registro particular, da seguinte forma:
Versão 1.31: o pacote completo não é compatível com um registro particular. Para usar um registro particular em um cluster avançado:
- Faça o download do pacote de tamanho normal para sua estação de trabalho de administrador.
- Atualize o nome do arquivo no campo
bundlePath
no arquivo de configuração do cluster de administrador.
Versão 1.32: o uso do pacote completo é compatível, mas o comando
gkectl prepare
extrai imagens degcr.io/gke-on-prem-release
em vez do arquivo tar. No entanto, o comando envia as imagens para seu registro particular para que as imagens do sistema sejam extraídas dele durante a criação ou o upgrade do cluster.
Verificar se as imagens foram extraídas do servidor de registro
A maneira de verificar se as imagens estão sendo extraídas do servidor de registro depende de se o cluster avançado está ativado.
Se o cluster avançado não estiver ativado, execute o seguinte comando:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get pods \ --all-namespaces -o jsonpath="{.items[*].spec['initContainers', 'containers'][*].image}"
Substitua
ADMIN_CLUSTER_KUBECONFIG
pelo caminho do arquivo kubeconfig para o cluster de administrador;A saída desse comando mostra todas as imagens no cluster. Você pode verificar se todas as imagens do Google Distributed Cloud são do seu próprio servidor de registro.
Se o cluster avançado estiver ativado, siga estas etapas:
É possível determinar se
containerd
está extraindo imagens do seu registro local examinando o conteúdo de um arquivo chamadoconfig.toml
, conforme mostrado nas seguintes etapas:- Faça login em um nó e examine o conteúdo do arquivo
/etc/containerd/config.toml
. Verifique o campo
plugins."io.containerd.grpc.v1.cri".registry.mirrors
do arquivoconfig.toml
para ver se o servidor de registro está listado no campoendpoint
.Confira abaixo um trecho de um exemplo de arquivo
config.toml
.version = 2 root = "/var/lib/containerd" state = "/run/containerd" ... [plugins."io.containerd.grpc.v1.cri".registry] [plugins."io.containerd.grpc.v1.cri".registry.configs] [plugins."io.containerd.grpc.v1.cri".registry.configs."gcr.io"] [plugins."io.containerd.grpc.v1.cri".registry.configs."privateregistry2.io".tls] ca_file = '/etc/containerd/certs.d/privateregistry2.io/ca.crt' [plugins."io.containerd.grpc.v1.cri".registry.mirrors] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"] endpoint = ["http://privateregistry.io", "http://privateregistry2.io"] ...
Se o espelho do registro aparecer no campo
endpoint
, o nó estará extraindo imagens do espelho do registro, em vez do Artifact Registry.
- Faça login em um nó e examine o conteúdo do arquivo