Konfigurace přihlašovacích údajů úložiště pro vaši aplikaci pro stahování imagí kontejneru
Nakonfigurujte ověřování registru kontejneru ContainerHostPolicies
přidáním RepositoryCredentials
do části manifestu aplikace. Přidejte účet a heslo pro registr kontejneru (myregistry.azurecr.io v následujícím příkladu), což službě umožní stáhnout image kontejneru z úložiště.
<ServiceManifestImport>
...
<Policies>
<ContainerHostPolicies CodePackageRef="Code">
<RepositoryCredentials AccountName="myregistry" Password="=P==/==/=8=/=+u4lyOB=+=nWzEeRfF=" PasswordEncrypted="false"/>
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
...
</ServiceManifestImport>
Doporučujeme zašifrovat heslo úložiště pomocí certifikátu pro šifrování, který je nasazený na všech uzlech clusteru. Když Service Fabric nasadí balíček služby do clusteru, certifikát šifrování se použije k dešifrování šifrovaného textu. Rutina Invoke-ServiceFabricEncryptText se používá k vytvoření šifrovaného textu pro heslo, který se přidá do souboru ApplicationManifest.xml. Další informace o certifikátech a sémantice šifrování najdete v tématu Správa tajných kódů.
Konfigurace přihlašovacích údajů pro celý cluster
Service Fabric umožňuje nakonfigurovat přihlašovací údaje pro celý cluster, které můžou aplikace používat jako výchozí přihlašovací údaje úložiště.
Tuto funkci je možné povolit nebo zakázat přidáním atributu UseDefaultRepositoryCredentials
do ContainerHostPolicies
ApplicationManifest.xml s true
hodnotou nebo false
.
<ServiceManifestImport>
...
<Policies>
<ContainerHostPolicies CodePackageRef="Code" UseDefaultRepositoryCredentials="true">
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
...
</ServiceManifestImport>
Service Fabric pak použije výchozí přihlašovací údaje úložiště, které je možné zadat v části ClusterManifest Hosting
. Pokud UseDefaultRepositoryCredentials
je true
, Service Fabric načte z ClusterManifestu následující hodnoty:
- DefaultContainerRepositoryAccountName (řetězec)
- DefaultContainerRepositoryPassword (řetězec)
- IsDefaultContainerRepositoryPasswordEncrypted (bool)
- DefaultContainerRepositoryPasswordType (řetězec)
Tady je příklad toho, co je možné přidat do oddílu Hosting
v souboru ClusterManifestTemplate.json. Oddíl Hosting
můžete přidat při vytvoření clusteru nebo později při upgradu konfigurace. Další informace najdete v tématech Změna nastavení clusteru Azure Service Fabric a Správa tajných kódů aplikací Azure Service Fabric.
"fabricSettings": [
...,
{
"name": "Hosting",
"parameters": [
{
"name": "EndpointProviderEnabled",
"value": "true"
},
{
"name": "DefaultContainerRepositoryAccountName",
"value": "someusername"
},
{
"name": "DefaultContainerRepositoryPassword",
"value": "somepassword"
},
{
"name": "IsDefaultContainerRepositoryPasswordEncrypted",
"value": "false"
},
{
"name": "DefaultContainerRepositoryPasswordType",
"value": "PlainText"
}
]
},
]
Použití tokenů jako přihlašovacích údajů registru
Service Fabric podporuje použití tokenů jako přihlašovacích údajů ke stažení imagí pro kontejnery. Tato funkce využívá spravovanou identitu základní škálovací sady virtuálních počítačů k ověřování v registru, čímž eliminuje potřebu správy přihlašovacích údajů uživatele. Další informace najdete v tématu Spravované identity pro prostředky Azure . Použití této funkce vyžaduje následující kroky:
Ujistěte se, že je pro virtuální počítač povolená spravovaná identita přiřazená systémem .
Poznámka
U spravované identity přiřazené uživatelem tento krok přeskočte. Zbývající kroky níže budou fungovat stejně, pokud je škálovací sada přidružená pouze k jedné spravované identitě přiřazené uživatelem.
Udělte škálovací sadě virtuálních počítačů oprávnění pro načítání a čtení imagí z registru. V okně Access Control (IAM) Azure Container Registry v Azure Portal přidejte přiřazení role pro virtuální počítač:
Dále upravte manifest aplikace.
ContainerHostPolicies
V části přidejte atribut‘UseTokenAuthenticationCredentials=”true”
.<ServiceManifestImport> <ServiceManifestRef ServiceManifestName="NodeServicePackage" ServiceManifestVersion="1.0"/> <Policies> <ContainerHostPolicies CodePackageRef="NodeService.Code" Isolation="process" UseTokenAuthenticationCredentials="true"> <PortBinding ContainerPort="8905" EndpointRef="Endpoint1"/> </ContainerHostPolicies> <ResourceGovernancePolicy CodePackageRef="NodeService.Code" MemoryInMB="256"/> </Policies> </ServiceManifestImport>
Poznámka
Příznak
UseDefaultRepositoryCredentials
nastavený na hodnotu true, zatímcoUseTokenAuthenticationCredentials
hodnota true způsobí chybu během nasazení.
Další kroky
- Přečtěte si další informace o ověřování registru kontejneru.