Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
De här självstudierna täcker olika distributionsscenarier för det anslutna registertillägget i ett Arc-aktiverat Kubernetes-kluster. När det anslutna registertillägget har installerats kan du synkronisera avbildningar från ditt molnregister till lokala platser eller fjärrplatser.
Innan du dyker in, ta lite tid för att lära dig hur Kubernetes med Arc-aktivering fungerar konceptuellt.
Det anslutna registret kan distribueras på ett säkert sätt med hjälp av olika krypteringsmetoder. För att säkerställa en lyckad distribution följer du snabbstartsguiden för att granska förutsättningarna och annan relevant information. Som standard konfigureras det anslutna registret med HTTPS, ReadOnly-läge, Förtroendedistribution och Cert Manager-tjänsten. Du kan lägga till fler anpassningar och beroenden efter behov, beroende på ditt scenario.
Vad är Cert Manager-tjänsten?
Den anslutna registercertifikathanteraren är en tjänst som hanterar TLS-certifikat för det anslutna registertillägget i ett Azure Arc-aktiverat Kubernetes-kluster. Det säkerställer säker kommunikation mellan det anslutna registret och andra komponenter genom att hantera skapandet, förnyelsen och distributionen av certifikat. Den här tjänsten kan installeras som en del av den anslutna registerdistributionen, eller så kan du använda en befintlig certifikathanterare om den redan är installerad i klustret.
Cert-Manager är ett Kubernetes-tillägg med öppen källkod som automatiserar hanteringen och utfärdandet av TLS-certifikat från olika källor. Den hanterar livscykeln för certifikat som utfärdats av CA-pooler som skapats med ca-tjänsten, vilket säkerställer att de är giltiga och förnyade innan de upphör att gälla.
Vad är förtroendedistribution?
Fördelning av förtroende för anslutna register avser processen för att säkert fördela förtroende mellan den anslutna registertjänsten och Kubernetes-klienter inom ett kluster. Detta uppnås med hjälp av en certifikatutfärdare (CA), till exempel cert-manager, för att signera TLS-certifikat, som sedan distribueras till både registertjänsten och klienterna. Detta säkerställer att alla entiteter kan autentisera varandra på ett säkert sätt och upprätthålla en säker och betrodd miljö i Kubernetes-klustret.
Förutsättningar
För att slutföra denna handledning behöver du:
Distribuera det anslutna registertillägget med din förinstallerade cert-manager
I den här handledningen visar vi hur du använder en förinstallerad cert-manager-tjänst på klustret. Den här konfigurationen ger dig kontroll över certifikathantering, så att du kan distribuera det anslutna registertillägget med kryptering genom att följa stegen nedan:
Kör kommandot az-k8s-extension-create i snabbstartenoch ange parametrarna cert-manager.enabled=true och cert-manager.install=false för att fastställa att cert-manager-tjänsten är installerad och aktiverad:
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 cert-manager.install=false \
--config-protected-file protected-settings-extension.json
Distribuera det anslutna registertillägget med hjälp av BYOC (Bring Your Own Certificate)
I den här handledningen visar vi hur du använder ditt eget certifikat (BYOC) i klustret. MED BYOC kan du använda ditt eget offentliga certifikat och privata nyckelpar, vilket ger dig kontroll över certifikathantering. Med den här konfigurationen kan du distribuera det anslutna registertillägget med kryptering genom att följa de angivna stegen:
Kommentar
BYOC gäller för kunder som har ett eget certifikat som redan är betrott av deras Kubernetes-noder. Vi rekommenderar inte att du uppdaterar noderna manuellt för att lita på certifikaten.
Följ snabbstarten och lägg till det offentliga certifikatet och den privata nyckelns strängvariabel + värdeparet.
- Skapa ett självsignerat SSL-certifikat med ip-adressen för den anslutna registertjänsten som SAN
mkdir /certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/mycert.key -x509 -days 365 -out /certs/mycert.crt -addext "subjectAltName = IP:<service IP>"
- Hämta base64-kodade strängar för dessa certifikatfiler
export TLS_CRT=$(cat mycert.crt | base64 -w0)
export TLS_KEY=$(cat mycert.key | base64 -w0)
- Filexempel för skyddade inställningar med hemlighet i JSON-format:
Anteckning
Det offentliga certifikatet och det privata nyckelparet måste kodas i base64-format och läggas till i filen med skyddade inställningar.
{
"connectionString": "[connection string here]",
"tls.crt": $TLS_CRT,
"tls.key": $TLS_KEY,
"tls.cacrt": $TLS_CRT
}
Nu kan du distribuera det anslutna registertillägget med HTTPS (TLS-kryptering) med hjälp av hantering av offentliga certifikat och privata nyckelpar genom att konfigurera variabler som anges till
cert-manager.enabled=falseochcert-manager.install=false. Med dessa parametrar är cert-manager inte installerat eller aktiverat eftersom det offentliga certifikatet och det privata nyckelparet används i stället för kryptering.Kör kommandot az-k8s-extension-create för distribution när filen med skyddade inställningar har redigerats:
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 cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file protected-settings-extension.json
Distribuera kopplat register med hemlighetshantering i Kubernetes
I den här handledningen visar vi hur du använder en Kubernetes-secret på ditt kluster. Med Kubernetes-hemligheten kan du på ett säkert sätt hantera auktoriserad åtkomst mellan poddar i klustret. Med den här konfigurationen kan du distribuera det anslutna registertillägget med kryptering genom att följa de angivna stegen:
Följ snabbstarten och lägg till Kubernetes TLS-hemlighetssträngsvariabeln och dess värdepar.
- Skapa ett självsignerat SSL-certifikat med ip-adressen för den anslutna registertjänsten som SAN
mkdir /certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/mycert.key -x509 -days 365 -out /certs/mycert.crt -addext "subjectAltName = IP:<service IP>"
- Hämta base64-kodade strängar för dessa certifikatfiler
export TLS_CRT=$(cat mycert.crt | base64 -w0)
export TLS_KEY=$(cat mycert.key | base64 -w0)
- Skapa k8s-hemlighet
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: k8secret
type: kubernetes.io/tls
data:
ca.crt: $TLS_CRT
tls.crt: $TLS_CRT
tls.key: $TLS_KEY
EOF
Filexempel för skyddade inställningar med hemlighet i JSON-format:
{ "connectionString": "[connection string here]", "tls.secret": “k8secret” }
Nu kan du distribuera det anslutna registertillägget med HTTPS (TLS-kryptering) med hjälp av Den hemliga Kubernetes-hanteringen genom att konfigurera variabler som anges till cert-manager.enabled=false och cert-manager.install=false. Med dessa parametrar är cert-manager inte installerat eller aktiverat eftersom Kubernetes-hemligheten används i stället för kryptering.
Kör kommandot az-k8s-extension-create för distribution när filen med skyddade inställningar har redigerats:
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 cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file protected-settings-extension.json
Distribuera det anslutna registret med din egen förtroendedistribution och inaktivera det anslutna registrets standarddistribution av förtroende
I den här handledningen visar vi hur du konfigurerar förtroendedistribution i klustret. När du använder din egen Kubernetes-hemlighet eller offentliga certifikat och privata nyckelpar kan du distribuera det anslutna registertillägget med TLS-kryptering, din inbyggda förtroendedistribution och avvisa det anslutna registrets standarddistribution av förtroende. Med den här konfigurationen kan du distribuera det anslutna registertillägget med kryptering genom att följa de angivna stegen:
Följ snabbstarten för att lägga till antingen Kubernetes-hemligheten eller det offentliga certifikatet och paren för variabel + värde för privata nycklar i filen med skyddade inställningar i JSON-format.
Kör kommandot az-k8s-extension-create i snabbstarten och ange parametrarna
trustDistribution.enabled=false,trustDistribution.skipNodeSelector=falseför att avvisa distribution av anslutet registerförtroende: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 trustDistribution.enabled=false \ --config cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file <JSON file path>
Med dessa parametrar är cert-manager inte installerad eller aktiverad, dessutom är distributionen av tillit för det anslutna registret inte genomförd. I stället använder du den förtroendedistribution som klustret tillhandahåller för att upprätta förtroende mellan det anslutna registret och klientnoderna.
Rensa resurser
Genom att ta bort det distribuerade anslutna registertillägget tar du bort motsvarande anslutna registerpoddar och konfigurationsinställningar.
Kör kommandot az-k8s-extension-delete för att ta bort det anslutna registertillägget:
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClustersKör kommandot az acr connected-registry delete för att ta bort det anslutna registret:
az acr connected-registry delete --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup
Genom att ta bort det anslutna registertillägget och det anslutna registret tar du bort alla associerade resurser och konfigurationer.