Démarrage rapide : déployer l’extension Arc de registre connecté (préversion)
Dans ce démarrage rapide, vous découvrez comment déployer l’extension Arc de registre connecté en utilisant l’expérience utilisateur d’interface CLI avec les paramètres par défaut sécurisés pour veiller à une sécurité robuste et une intégrité opérationnelle.
Le registre connecté est un outil essentiel pour les clients en périphérie car il permet un accès et une gestion des charges de travail conteneurisées, que ce soit sur des sites locaux ou distants. L’intégration du service à Azure Arc veille à une expérience de gestion de cycle de vie fluide et unifiée pour les charges de travail conteneurisées basées sur Kubernetes. Le déploiement de l’extension Arc de registre connecté sur des clusters Kubernetes avec Arc simplifie l’accès et la gestion de ces charges de travail.
Prérequis
Configurez l’interface Azure CLI à connecter à Azure et Kubernetes.
Créez ou utilisez une instance Azure Container Registry (ACR) existante avec le démarrage rapide.
Configurez la communication et l’accès du pare-feu entre l’instance ACR et le registre connecté en activant les points de terminaison de données dédiés.
Créez ou utilisez un cluster Azure Kubernetes Service (AKS) existant avec le tutoriel.
Configurez la connexion entre le cluster Kubernetes et Azure Arc en suivant le démarrage rapide.
Utilisez la commande k8s-extension pour gérer les extensions Kubernetes.
az extension add --name k8s-extension
Inscrivez les fournisseurs de ressources Azure suivants dans votre abonnement et utilisez Kubernetes avec Azure Arc :
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Un fournisseur de ressources Azure est un ensemble d’opérations REST qui activent les fonctionnalités d’un service Azure spécifique.
Référentiel dans le registre ACR à synchroniser avec le registre connecté.
az acr import --name myacrregistry --source mcr.microsoft.com/mcr/hello-world:latest --image hello-world:latest
Le référentiel
hello-world
est créé dans le registre ACRmyacrregistry
à synchroniser avec le registre connecté.
Déployer l’extension Arc de registre connecté avec les paramètres par défaut sécurisés
Une fois que les prérequis, conditions et composants nécessaires sont en place, suivez l’approche simplifiée pour déployer en toute sécurité une extension de registre connecté sur un cluster Kubernetes avec Arc en utilisant les paramètres suivants. Ces paramètres définissent la configuration suivante avec HTTPS, Lecture seule, Distribution d’approbation et un service Cert Manager. Suivez les étapes pour bénéficier d’un déploiement correct :
- Créez le registre connecté.
- Déployez l’extension Arc de registre connecté.
- Vérifiez le déploiement de l’extension de registre connecté.
- Déployez un pod qui utilise une image du registre connecté.
Créer le registre connecté et synchroniser avec ACR
La création du registre connecté à synchroniser avec ACR est l’étape de base pour déployer l’extension Arc de registre connecté.
Créez le registre connecté qui se synchronise avec le registre ACR :
Pour créer un registre connecté
myconnectedregistry
qui se synchronise avec le registre ACRmyacrregistry
dans le groupe de ressourcesmyresourcegroup
et le référentielhello-world
, vous pouvez exécuter la commande az acr connected-registry create :az acr connected-registry create --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --repository "hello-world"
- La commande az acr connected-registry create crée le registre connecté avec le référentiel spécifié.
- La commande az acr connected-registry create remplace les actions si le routage d’étendue de synchronisation nommé
myscopemap
existe et remplace les propriétés si le jeton de synchronisation nommémysynctoken
existe. - La commande az acr connected-registry create valide un point de terminaison de données dédié pendant la création du registre connecté et fournit une commande pour activer le point de terminaison de données dédié sur le registre ACR.
Déployer l’extension Arc du registre connecté sur le cluster Kubernetes avec Arc
Le déploiement de l’extension Arc de registre connecté vous permet de synchroniser des images conteneur et d’autres artefacts Open Container Initiative (OCI) avec votre registre ACR. Le déploiement permet d’accélérer l’accès aux artefacts de registre et de créer des scénarios avancés. Le déploiement de l’extension veille à sécuriser la distribution d’approbation entre le registre connecté et tous les nœuds clients au sein du cluster et installe le service du gestionnaire de certificats pour le chiffrement TLS (Transport Layer Security).
Générer la chaîne de connexion et le fichier JSON de paramètres protégés
Pour obtenir un déploiement sécurisé de l’extension de registre connecté, générez la chaîne de connexion, notamment un nouveau mot de passe, un protocole de transport, et créez le fichier
protected-settings-extension.json
requis pour le déploiement de l’extension avec la commande 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
Remarque
Les commandes cat et echo créent le fichier protected-settings-extension.json
avec les détails de la chaîne de connexion, ce qui injecte le contenu de la chaîne de connexion dans le fichier protected-settings-extension.json
, une étape nécessaire pour le déploiement de l’extension. La commande az acr connected-registry get-settings génère la chaîne de connexion, notamment la création d’un mot de passe et la spécification du protocole de transport.
Déployer l’extension de registre connecté
Déployez l’extension de registre connecté avec les détails spécifiés de configuration en utilisant la commande 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
- La commande az k8s-extension create déploie l’extension de registre connecté sur le cluster Kubernetes avec le fichier de paramètres protégés et les paramètres de configuration fournis.
- Elle veille à sécuriser la distribution d’approbation entre le registre connecté et tous les nœuds clients au sein du cluster et installe le service du gestionnaire de certificats pour le chiffrement TLS (Transport Layer Security).
- Le clusterIP doit être dans la plage d’adresses IP de sous-réseau du cluster AKS. Le paramètre
service.clusterIP
spécifie l’adresse IP du service de registre connecté au sein du cluster. Il est essentiel de définir l’adresseservice.clusterIP
dans la plage d’adresses IP de service valides pour le cluster Kubernetes. Vérifiez que l’adresse IP spécifiée pourservice.clusterIP
est comprise dans la plage d’adresses IP de service désignée pendant la configuration initiale du cluster, se trouvant habituellement dans les paramètres de mise en réseau du cluster. Si l’adresseservice.clusterIP
ne se trouve pas dans cette plage, elle doit être mise à jour vers une adresse IP se trouvant dans la plage valide et n’étant pas actuellement utilisée par un autre service.
Vérifier le déploiement de l’extension du registre connecté
Pour vérifier le déploiement de l’extension du registre connecté sur un cluster Kubernetes avec Arc, suivez ces étapes :
Vérifier l’état du déploiement
Exécutez la commande az k8s-extension show pour vérifier l’état du déploiement de l’extension du registre connecté :
az k8s-extension show --name myconnectedregistry \
--cluster-name myarck8scluster \
--resource-group myresourcegroup \
--cluster-type connectedClusters
Exemple de sortie
{
"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
}
Vérifier l’état et l’état du registre connecté
Pour chaque registre connecté, vous pouvez afficher l’état et l’état du registre connecté en utilisant la commande az acr connected-registry list :
az acr connected-registry list --registry myacrregistry \ --output table
Exemple de sortie
| 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 |
Vérifier les détails du registre connecté spécifiques
Pour découvrir des informations sur un registre connecté spécifique, utilisez la commande az acr connected-registry show :
az acr connected-registry show --registry myacrregistry \
--name myreadonlyacr \
--output table
Exemple de sortie
| 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 |
- La commande az k8s-extension show vérifie l’état du déploiement de l’extension.
- La commande fournit également des détails sur l’état de connexion du registre connecté, la dernière synchronisation, la fenêtre de synchronisation, la planification de synchronisation et bien plus encore.
Déployer un pod qui utilise une image de registre connecté
Si vous souhaitez déployer un pod qui utilise une image de registre connecté dans le cluster, vous devez effectuer l’opération à partir du nœud de cluster lui-même. Effectuez les étapes suivantes :
- Créez un secret dans le cluster pour l’authentification avec le registre connecté :
Exécutez la commande kubectl create secret docker-registry pour créer un secret dans le cluster pour l’authentification avec le registre connecté :
kubectl create secret docker-registry regcred --docker-server=192.100.100.1 --docker-username=mytoken --docker-password=mypassword
Déployez le pod qui utilise l’image souhaitée du registre connecté en utilisant la valeur de l’adresse service.clusterIP
192.100.100.1
du registre connecté et le nom d’imagehello-world
avec une baliselatest
: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
Nettoyer les ressources
La suppression de l’extension de registre connecté déployée vous permet de supprimer les pods du registre connecté correspondant et les paramètres de configuration.
Supprimer l’extension de registre connecté
Exécutez la commande az k8s-extension delete pour supprimer l’extension de registre connecté :
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClusters
La suppression du registre connecté déployé vous permet de supprimer l’instance cloud de registre connecté et les détails de sa configuration.
Supprimer le registre connecté
Exécutez la commande az acr connected-registry delete pour supprimer le registre connecté :
az acr connected-registry delete --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup