Guia de início rápido: implantar a extensão Arc do registro conectado (visualização)
Neste guia de início rápido, você aprenderá a implantar a extensão Connected registry Arc usando a CLI UX com configurações seguras por padrão para garantir segurança robusta e integridade operacional.
O registro conectado é uma ferramenta fundamental para clientes de borda, permitindo gerenciamento eficiente e acesso a cargas de trabalho em contêineres, seja no local ou em locais remotos. Ao integrar com o Azure Arc, o serviço garante uma experiência de gerenciamento de ciclo de vida perfeita e unificada para cargas de trabalho em contêineres baseadas em Kubernetes. A implantação da extensão Arc do registro conectado em clusters Kubernetes habilitados para Arc simplifica o gerenciamento e o acesso dessas cargas de trabalho.
Pré-requisitos
Configure a CLI do Azure para se conectar ao Azure e ao Kubernetes.
Crie ou use um Registro de Contêiner do Azure (ACR) existente com início rápido.
Configure o acesso ao firewall e a comunicação entre o ACR e o registro conectado habilitando os pontos de extremidade de dados dedicados.
Crie ou use um cluster existente do Azure KubernetesService (AKS) com o tutorial.
Configure a conexão entre o Kubernetescluster e o Azure Arc seguindo o início rápido.
Use o comando k8s-extension para gerenciar Kubernetesextensions.
az extension add --name k8s-extension
Registre os provedores de recursos do Azure necessários em sua assinatura e use o Kubernetes habilitado para Azure Arc:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Um provedor de recursos do Azure é um conjunto de operações REST que habilitam a funcionalidade para um serviço específico do Azure.
Repositório no registro ACR para sincronizar com o registro conectado.
az acr import --name myacrregistry --source mcr.microsoft.com/mcr/hello-world:latest --image hello-world:latest
O
hello-world
repositório é criado no registromyacrregistry
ACR para sincronizar com o registro conectado.
Implante a extensão Arc do Registro conectado com configurações seguras por padrão
Depois que os pré-requisitos, as condições e os componentes necessários estiverem em vigor, siga a abordagem simplificada para implantar com segurança uma extensão do Registro conectada em um cluster Kubernetes habilitado para Arc usando as seguintes configurações. Essas configurações definem a seguinte configuração com HTTPS, Somente leitura, Distribuição de confiança e serviço Cert Manager. Siga as etapas para uma implantação bem-sucedida:
- Crie o registro conectado.
- Implante a extensão Arc do Registro conectado.
- Verifique a implantação da extensão do Registro conectada.
- Implante um pod que usa a imagem do registro conectado.
Crie o registro conectado e sincronize com o ACR
Criar o registro conectado para sincronizar com o ACR é a etapa fundamental para implantar a extensão Arc do registro conectado.
Crie o registro conectado, que sincroniza com o registro ACR:
Para criar um registro
myconnectedregistry
conectado que sincroniza com o registromyacrregistry
ACR no grupomyresourcegroup
de recursos e no repositóriohello-world
, você pode executar o comando az acr connected-registry create :az acr connected-registry create --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --repository "hello-world"
- O comando az acr connected-registry create cria o registro conectado com o repositório especificado.
- O comando az acr connected-registry create substitui ações se o mapa de escopo de sincronização nomeado
myscopemap
existir e substitui as propriedades se o token de sincronização nomeadomysynctoken
existir. - O comando az acr connected-registry create valida um ponto de extremidade de dados dedicado durante a criação do registro conectado e fornece um comando para habilitar o ponto de extremidade de dados dedicado no registro ACR.
Implantar a extensão Arc do registro conectado no cluster Kubernetes habilitado para Arc
Ao implantar a extensão Registry Arc conectada, você pode sincronizar imagens de contêiner e outros artefatos Open Container Initiative (OCI) com seu registro ACR. A implantação ajuda a acelerar o acesso aos artefatos do Registro e permite a criação de cenários avançados. A implantação da extensão garante uma distribuição segura de confiança entre o registro conectado e todos os nós do cliente dentro do cluster e instala o serviço cert-manager para criptografia TLS (Transport Layer Security).
Gerar a cadeia de conexão e o arquivo JSON de configurações protegidas
Para a implantação segura da extensão do Registro conectada, gere a cadeia de conexão, incluindo uma nova senha, protocolo de transporte e crie o
protected-settings-extension.json
arquivo necessário para a implantação da extensão com o comando az acr connected-registry get-settings :
cat << EOF > protected-settings-extension.json
{
"connectionString": "$(az acr connected-registry get-settings \
--name myconnectedregistry \
--registry myacrregistry \
--parent-protocol https \
--generate-password 1 \
--query ACR_REGISTRY_CONNECTION_STRING --output tsv --yes)"
}
EOF
cat << EOF > protected-settings-extension.json
{
"connectionString": "$(az acr connected-registry get-settings \
--name myconnectedregistry \
--registry myacrregistry \
--parent-protocol https \
--generate-password 1 \
--query ACR_REGISTRY_CONNECTION_STRING --output tsv --yes)"
}
EOF
echo "{\"connectionString\":\"$(az acr connected-registry get-settings \
--name myconnectedregistry \
--registry myacrregistry \
--parent-protocol https \
--generate-password 1 \
--query ACR_REGISTRY_CONNECTION_STRING \
--output tsv \
--yes | tr -d '\r')\" }" > settings.json
Nota
Os comandos cat e echo criam o protected-settings-extension.json
arquivo com os detalhes da cadeia de conexão, injetando o conteúdo da cadeia de conexão no protected-settings-extension.json
arquivo, uma etapa necessária para a implantação da extensão. O comando az acr connected-registry get-settings gera a cadeia de conexão, incluindo a criação de uma nova senha e a especificação do protocolo de transporte.
Implantar a extensão do Registro conectada
Implante a extensão do Registro conectada com os detalhes de configuração especificados usando o comando az k8s-extension create :
az k8s-extension create --cluster-name myarck8scluster \
--cluster-type connectedClusters \
--extension-type Microsoft.ContainerRegistry.ConnectedRegistry \
--name myconnectedregistry \
--resource-group myresourcegroup \
--config service.clusterIP=192.100.100.1 \
--config-protected-file protected-settings-extension.json
- O comando az k8s-extension create implanta a extensão do Registro conectada no Kubernetescluster com os parâmetros de configuração fornecidos e o arquivo de configurações protegidas.
- Ele garante a distribuição segura de confiança entre o registro conectado e todos os nós do cliente dentro do cluster e instala o serviço cert-manager para criptografia TLS (Transport Layer Security).
- O clusterIP deve ser do intervalo IP da sub-rede do cluster AKS. O
service.clusterIP
parâmetro especifica o endereço IP do serviço de registro conectado dentro do cluster. É essencial definir oservice.clusterIP
dentro do intervalo de IPs de serviço válidos para o Kubernetescluster. Certifique-se de que o endereço IP especificado paraservice.clusterIP
esteja dentro do intervalo de IP de serviço designado definido durante a configuração inicial do cluster, normalmente encontrado nas configurações de rede do cluster. Se oservice.clusterIP
não estiver dentro desse intervalo, ele deve ser atualizado para um endereço IP que esteja dentro do intervalo válido e não esteja atualmente em uso por outro serviço.
Verificar a implantação da extensão do Registro conectada
Para verificar a implantação da extensão do Registro conectada no Kubernetescluster habilitado para Arc, siga as etapas:
Verificar o status da implantação
Execute o comando az k8s-extension show para verificar o status de implantação da extensão de registro conectada:
az k8s-extension show --name myconnectedregistry \
--cluster-name myarck8scluster \
--resource-group myresourcegroup \
--cluster-type connectedClusters
Exemplo de saída
{
"aksAssignedIdentity": null,
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": {
"connectionString": ""
},
"configurationSettings": {
"pvc.storageClassName": "standard",
"pvc.storageRequest": "250Gi",
"service.clusterIP": "[your service cluster ip]"
},
"currentVersion": "0.11.0",
"customLocationSettings": null,
"errorInfo": null,
"extensionType": "microsoft.containerregistry.connectedregistry",
"id": "/subscriptions/[your subscription id]/resourceGroups/[your resource group name]/providers/Microsoft.Kubernetes/connectedClusters/[your arc cluster name]/providers/Microsoft.KubernetesConfiguration/extensions/[your extension name]",
"identity": {
"principalId": "[identity principal id]",
"tenantId": null,
"type": "SystemAssigned"
},
"isSystemExtension": false,
"name": "[your extension name]",
"packageUri": null,
"plan": null,
"provisioningState": "Succeeded",
"releaseTrain": "preview",
"resourceGroup": "[your resource group]",
"scope": {
"cluster": {
"releaseNamespace": "connected-registry"
},
"namespace": null
},
"statuses": [],
"systemData": {
"createdAt": "2024-07-12T18:17:51.364427+00:00",
"createdBy": null,
"createdByType": null,
"lastModifiedAt": "2024-07-12T18:22:42.156799+00:00",
"lastModifiedBy": null,
"lastModifiedByType": null
},
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": null
}
Verificar o estado e o estado do registo ligado
Para cada registro conectado, você pode exibir o status e o estado do registro conectado usando o comando az acr connected-registry list :
az acr connected-registry list --registry myacrregistry \ --output table
Exemplo de saída
| NAME | MODE | CONNECTION STATE | PARENT | LOGIN SERVER | LAST SYNC(UTC) |
|------|------|------------------|--------|--------------|----------------|
| myconnectedregistry | ReadWrite | online | myacrregistry | myacrregistry.azurecr.io | 2024-05-09 12:00:00 |
| myreadonlyacr | ReadOnly | offline | myacrregistry | myacrregistry.azurecr.io | 2024-05-09 12:00:00 |
Verifique os detalhes específicos do registro conectado
Para obter detalhes sobre um registro conectado específico, use o comando az acr connected-registry show :
az acr connected-registry show --registry myacrregistry \
--name myreadonlyacr \
--output table
Exemplo de saída
| NAME | MODE | CONNECTION STATE | PARENT | LOGIN SERVER | LAST SYNC(UTC) | SYNC SCHEDULE | SYNC WINDOW |
| ------------------- | --------- | ---------------- | ------------- | ------------------------ | ------------------- | ------------- | ----------------- |
| myconnectedregistry | ReadWrite | online | myacrregistry | myacrregistry.azurecr.io | 2024-05-09 12:00:00 | 0 0 * * * | 00:00:00-23:59:59 |
- O comando az k8s-extension show verifica o estado da implantação da extensão.
- O comando também fornece detalhes sobre o status da conexão do registro conectado, última sincronização, janela de sincronização, agendamento de sincronização e muito mais.
Implantar um pod que usa uma imagem do registro conectado
Para implantar um pod que usa uma imagem do registro conectado dentro do cluster, a operação deve ser executada de dentro do próprio nó do cluster. Siga estes passos:
- Crie um segredo no cluster para autenticar com o registro conectado:
Execute o comando kubectl create secret docker-registry para criar um segredo no cluster para autenticar com o registro conectado:
kubectl create secret docker-registry regcred --docker-server=192.100.100.1 --docker-username=mytoken --docker-password=mypassword
Implante o pod que usa a imagem desejada do registro conectado usando o valor do endereço
192.100.100.1
service.clusterIP do registro conectado e o nomehello-world
da imagem com a taglatest
:kubectl apply -f - <<EOF apiVersion: apps/v1 kind: Deployment metadata: name: hello-world-deployment labels: app: hello-world spec: selector: matchLabels: app: hello-world replicas: 1 template: metadata: labels: app: hello-world spec: imagePullSecrets: - name: regcred containers: - name: hello-world image: 192.100.100.1/hello-world:latest EOF
Clean up resources (Limpar recursos)
Ao excluir a extensão de registro conectada implantada, você remove os pods de registro conectados correspondentes e as definições de configuração.
Exclua a extensão de registro conectada
Execute o comando az k8s-extension delete para excluir a extensão de registro conectada:
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClusters
Ao excluir o registro conectado implantado, você remove a instância de nuvem do registro conectada e seus detalhes de configuração.
Excluir o registro conectado
Execute o comando az acr connected-registry delete para excluir o registro conectado:
az acr connected-registry delete --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup