Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje různé scénáře nasazení pro připojené rozšíření registru v clusteru Kubernetes s podporou Arc. Po instalaci připojeného rozšíření registru můžete synchronizovat image z cloudového registru do místních nebo vzdálených umístění.
Než se pustíte do práce, chvíli se dozvíte, jak Kubernetes s podporou Arc funguje koncepčně.
Připojený registr můžete bezpečně nasadit pomocí různých metod šifrování. Pokud chcete zajistit úspěšné nasazení, projděte si požadavky a další související informace podle pokynů pro rychlý start. Ve výchozím nastavení je připojený registr nakonfigurovaný pomocí protokolu HTTPS, režimu ReadOnly, distribuce důvěryhodnosti a služby Cert Manager. Podle vašeho scénáře můžete přidat další přizpůsobení a závislosti.
Co je služba Cert Manager?
Správce certifikátů připojeného registru je služba, která spravuje certifikáty TLS pro připojené rozšíření registru v clusteru Kubernetes s podporou Azure Arc. Zajišťuje zabezpečenou komunikaci mezi připojeným registrem a dalšími komponentami tím, že zpracovává vytváření, obnovení a distribuci certifikátů. Tuto službu můžete nainstalovat jako součást nasazení připojeného registru nebo můžete použít existujícího správce certifikátů, pokud už je nainstalovaná ve vašem clusteru.
Cert-Manager je opensourcový doplněk Kubernetes, který automatizuje správu a vystavování certifikátů TLS z různých zdrojů. Spravuje životní cyklus certifikátů vydaných fondy certifikačních autorit vytvořených pomocí služby CA a zajišťuje jejich platnost a prodloužení před vypršením jejich platnosti.
Co je distribuce důvěryhodnosti?
Distribuce důvěryhodnosti připojeného registru odkazuje na proces bezpečné distribuce důvěryhodnosti mezi připojenou službu registru a klienty Kubernetes v rámci clusteru. Pomocí certifikační autority (CA), jako je cert-manager, k podepisování certifikátů TLS můžete tyto certifikáty distribuovat do služby registru i klientů. Tento proces zajišťuje, aby se všechny entity mohly bezpečně ověřit a udržovat zabezpečené a důvěryhodné prostředí v clusteru Kubernetes.
Nasazení připojeného rozšíření registru pomocí předinstalovaného správce certifikátů
Při použití předinstalované služby cert-manager v clusteru máte kontrolu nad správou certifikátů. Nasaďte připojené rozšíření registru s šifrováním podle uvedených kroků:
V rychlém startu spusťte příkaz az-k8s-extension-create a nastavte cert-manager.enabled=true parametry cert-manager.install=false tak, aby indikoval, že je služba cert-manager nainstalovaná a povolená:
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
Nasazení připojeného rozšíření registru pomocí funkce Přineste si vlastní certifikát (BYOC)
Používání vlastního certifikátu (BYOC) umožňuje používat vlastní veřejný certifikát a pár privátních klíčů, abyste měli kontrolu nad správou certifikátů. Toto nastavení umožňuje nasadit připojené rozšíření registru s šifrováním.
Note
Funkce BYOC je užitečná pro zákazníky, kteří dodají svůj vlastní certifikát, jemuž jejich uzly Kubernetes již důvěřují. Neaktualizujte uzly ručně, aby důvěřovaly certifikátům.
Při nasazování rozšíření přidejte veřejný certifikát a dvojici řetězců privátního klíče a hodnoty pomocí následujícího postupu:
Vytvořte certifikát SSL podepsaný svým držitelem s IP adresou připojené služby registru jako síť SAN:
mkdir /certsopenssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/mycert.key -x509 -days 365 -out /certs/mycert.crt -addext "subjectAltName = IP:<service IP>"Získejte řetězce s kódováním Base64 těchto souborů certifikátů:
export TLS_CRT=$(cat mycert.crt | base64 -w0) export TLS_KEY=$(cat mycert.key | base64 -w0)Vytvořte chráněný soubor nastavení s tajným kódem ve formátu JSON, podobně jako v následujícím příkladu:
Note
Veřejný certifikát a pár privátních klíčů musí být kódovány ve formátu base64 a přidány do souboru chráněných nastavení.
{ "connectionString": "[connection string here]", "tls.crt": $TLS_CRT, "tls.key": $TLS_KEY, "tls.cacrt": $TLS_CRT }Nasaďte rozšíření připojeného registru pomocí šifrování HTTPS (šifrování TLS) pomocí správy veřejného certifikátu a páru privátních klíčů tím, že nakonfigurujete proměnné nastavené na
cert-manager.enabled=falseacert-manager.install=false. Pomocí těchto parametrů není cert-manager nainstalován nebo povolen, protože veřejný certifikát a pár privátních klíčů se místo toho používá k šifrování.Po úpravě souboru chráněných nastavení spusťte příkaz az-k8s-extension-create pro nasazení:
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
Nasazení připojeného registru se správou tajemství Kubernetes
Pomocí tajného kódu Kubernetes ve vašem clusteru můžete bezpečně spravovat autorizovaný přístup mezi pody v rámci clusteru. Toto nastavení umožňuje nasadit připojené rozšíření registru s šifrováním.
Přidejte proměnnou a hodnotu tajného řetězce protokolu TLS Kubernetes pomocí následujícího postupu:
Vytvoření certifikátu SSL podepsaného svým držitelem s IP adresou připojené služby registru jako sítě SAN
mkdir /certsopenssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/mycert.key -x509 -days 365 -out /certs/mycert.crt -addext "subjectAltName = IP:<service IP>"Získejte řetězce s kódováním base64 z těchto souborů certifikátů:
export TLS_CRT=$(cat mycert.crt | base64 -w0) export TLS_KEY=$(cat mycert.key | base64 -w0)Vytvoření tajného kódu Kubernetes:
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 EOFVytvořte chráněný soubor nastavení s tajným kódem ve formátu JSON, podobně jako v následujícím příkladu:
{ "connectionString": "[connection string here]", "tls.secret": “k8secret” }Nasaďte rozšíření připojeného registru s šifrováním HTTPS (TLS) pomocí správy tajemství Kubernetes. Konfigurace proměnných nastavených na
cert-manager.enabled=falseacert-manager.install=false. Pomocí těchto parametrů není cert-manager nainstalovaný nebo povolený, protože tajný klíč Kubernetes se místo toho používá k šifrování.Po úpravě souboru chráněných nastavení spusťte příkaz az-k8s-extension-create pro nasazení:
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
Nasazení připojeného registru pomocí vlastní distribuce důvěry
Pomocí vlastních tajných kódů Kubernetes nebo párů veřejného certifikátu a privátního klíče můžete nasadit připojené rozšíření registru pomocí šifrování TLS, vlastní distribuce důvěryhodnosti a odmítnout výchozí distribuci důvěryhodnosti připojeného registru. Toto nastavení umožňuje nasadit připojené rozšíření registru s šifrováním. Nezapomeňte přidat tajný klíč Kubernetes nebo veřejný certifikát a páry proměnných a hodnot privátního klíče do souboru chráněných nastavení ve formátu JSON.
Pokud chcete použít tuto možnost, nastavte parametry trustDistribution.enabled=false a trustDistribution.skipNodeSelector=false tak, aby při nasazení rozšíření odmítaly distribuci důvěryhodnosti připojeného registru.
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>
Při použití těchto parametrů není cert-manager nainstalován nebo povolen a distribuce důvěryhodnosti připojeného registru není vynucena. Místo toho použijete distribuci důvěryhodnosti poskytovanou clusterem k navázání vztahu důvěryhodnosti mezi připojeným registrem a klientskými uzly.
Vyčistěte zdroje
Podle těchto kroků odeberte připojené rozšíření registru, odpovídající pody připojeného registru a nastavení konfigurace.
Spuštěním příkazu az-k8s-extension-delete odstraňte připojené rozšíření registru:
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClustersSpuštěním příkazu az acr connected-registry delete odstraňte připojený prostředek registru:
az acr connected-registry delete --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup