Início Rápido: Implantar a extensão do Arc do registro conectado (versão prévia)
Neste início rápido, você aprenderá como implantar a extensão do Arc do registro conectado usando a CLI UX com configurações seguras por padrão para garantir robusta segurança e integridade operacional.
O registro conectado é uma ferramenta crucial para clientes de borda, permitindo o gerenciamento eficiente e o acesso a cargas de trabalho em contêineres, seja no local ou em locais remotos. Ao integrar-se ao Azure Arc, o serviço garante uma experiência de gerenciamento de ciclo de vida contínua e unificada para cargas de trabalho em contêineres baseadas em Kubernetes. Implantar a extensão do Arc do registro conectado em clusters do Kubernetes habilitados para Arc simplifica o gerenciamento e o acesso a essas cargas de trabalho.
Pré-requisitos
Configure a CLI do Azure para se conectar ao Azure e ao Kubernetes.
Criar ou usar um Registro de Contêiner do Azure (ACR) existente com o início rápido.
Configure o acesso do firewall e a comunicação entre o ACR e o registro conectado habilitando os pontos de extremidade dedicados.
Criar ou usar um cluster do Serviço de Kubernetes do Azure (AKS) existente com o tutorial.
Configure a conexão entre o cluster do Kubernetes e o Azure Arc seguindo o início rápido.
Use o comando k8s-extension para gerenciar extensões Kubernetes.
az extension add --name k8s-extension
Registre os provedores de recursos do Azure necessários na sua assinatura e use 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 foi criado no registro ACRmyacrregistry
para sincronizar com o registro conectado.
Implante a extensão do Arc do registro conectado com configurações seguras por padrão
Quando os pré-requisitos, condições e componentes necessários estiverem em vigor, siga a abordagem simplificada para implantar com segurança uma extensão do registro conectado em um cluster do 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 Gerenciador de Certificados. Siga as etapas para uma implantação bem-sucedida:
- Criar o registro conectado.
- Implantar a extensão do Arc do registro conectado.
- Verificar a implantação da extensão do registro conectado.
- Implantar um pod que use a imagem do registro conectado.
Criar o registro conectado e sincronizá-lo com o ACR
Criar o registro conectado para sincronizar com o ACR é a etapa fundamental para implantar a extensão do Arc do registro conectado.
Criar o registro conectado, que será sincronizado com o registro ACR:
Para criar um registro conectado
myconnectedregistry
que sincronize com o registro ACRmyacrregistry
no grupo de recursosmyresourcegroup
e o 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 sobrescreverá as ações se o mapa de escopo de sincronização chamado
myscopemap
existir e sobrescreve as propriedades se o token de sincronização chamadomysynctoken
existir. - O comando az acr connected-registry create valida um ponto de extremidade dedicado durante a criação do registro conectado e fornece um comando para habilitar o ponto de extremidade dedicado no registro ACR.
Implante a extensão do Arc do registro conectado no cluster do Kubernetes habilitado para Arc
Ao implantar a extensão do Arc do registro conectado, você poderá sincronizar imagens de contêiner e outros artefatos da Open Container Initiative (OCI) com o registro ACR. A implantação acelera o acesso a artefatos do registro e permite a criação de cenários avançados. A implantação da extensão garante a distribuição segura de confiança entre o registro conectado e todos os nós cliente dentro do cluster, e instala o serviço gerenciador de certificados para criptografia TLS.
Gere a Cadeia de Conexão e o Arquivo JSON de Configurações Protegidas
Para uma implantação segura da extensão do registro conectado, 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
Observação
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ário 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 conectado
Implante a extensão do registro conectado 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 conectado no cluster do Kubernetes 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 cliente dentro do cluster, e instala o serviço gerenciador de certificados para criptografia TLS.
- O clusterIP deve ser do intervalo de IP da sub-rede do cluster do AKS. O
service.clusterIP
parâmetro especifica o endereço IP do serviço do registro conectado dentro do cluster. É essencial definir oservice.clusterIP
dentro do intervalo de IPs de serviço válidos para o cluster do Kubernetes. Verifique se o endereço IP especificado paraservice.clusterIP
está dentro do intervalo de IPs 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 deverá ser atualizado para um endereço IP que esteja dentro do intervalo válido e que não esteja sendo usado por outro serviço no momento.
Verifique a implantação da extensão do registro conectado
Para verificar a implantação da extensão do registro conectado no cluster do Kubernetes habilitado para Arc, siga as etapas:
Verificar o status da implantação
Execute o comando az k8s-extension show para verificar o status da implantação da extensão do registro conectado:
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 status e o estado do registro conectado
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, cronograma de sincronização e mais.
Implantar um pod que usa uma imagem do registro conectado
Para implantar um pod que use uma imagem do registro conectado dentro do cluster, a operação deve ser realizada a partir do próprio nó do cluster. Siga estas etapas:
- Criar 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 de serviço.clusterIP
192.100.100.1
do registro conectado, e o nome da imagemhello-world
com a marcalatest
: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
Limpar os recursos
Ao excluir a extensão do registro conectado implantada, você removerá os pods do registro conectado e as configurações de configuração correspondentes.
Excluir a extensão do registro conectado
Execute o comando az k8s-extension delete para excluir a extensão do registro conectado:
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClusters
Ao excluir o registro conectado implantado, você removerá a instância em nuvem do registro conectado 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