Opslagplaatsreferenties configureren voor uw toepassing om containerinstallatiekopieën te downloaden
Configureer verificatie van containerregisters door toe te voegen aan RepositoryCredentials
de ContainerHostPolicies
sectie van uw toepassingsmanifest. Voeg het account en wachtwoord voor uw containerregister toe (myregistry.azurecr.io in het onderstaande voorbeeld), waarmee de service de containerinstallatiekopieën uit de opslagplaats kan downloaden.
<ServiceManifestImport>
...
<Policies>
<ContainerHostPolicies CodePackageRef="Code">
<RepositoryCredentials AccountName="myregistry" Password="=P==/==/=8=/=+u4lyOB=+=nWzEeRfF=" PasswordEncrypted="false"/>
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
...
</ServiceManifestImport>
Het wordt aanbevolen om het wachtwoord van de opslagplaats te versleutelen met behulp van een coderingscertificaat dat is geïmplementeerd op alle knooppunten van het cluster. Wanneer Service Fabric het servicepakket naar het cluster implementeert, wordt het versleutelingscertificaat gebruikt om de versleutelde tekst te ontsleutelen. De cmdlet Invoke-ServiceFabricEncryptText wordt gebruikt om de gecodeerde tekst voor het wachtwoord te maken, die wordt toegevoegd aan het bestand ApplicationManifest.xml. Zie Geheimbeheer voor meer informatie over certificaten en versleutelingssemantiek.
Referenties voor het hele cluster configureren
Met Service Fabric kunt u clusterbrede referenties configureren die door toepassingen kunnen worden gebruikt als standaardreferenties voor opslagplaatsen.
Deze functie kan worden ingeschakeld of uitgeschakeld door het UseDefaultRepositoryCredentials
kenmerk toe te ContainerHostPolicies
voegen aan ApplicationManifest.xml met een true
of false
waarde.
<ServiceManifestImport>
...
<Policies>
<ContainerHostPolicies CodePackageRef="Code" UseDefaultRepositoryCredentials="true">
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
...
</ServiceManifestImport>
Service Fabric gebruikt vervolgens de standaardreferenties voor opslagplaatsen die kunnen worden opgegeven in het ClusterManifest onder de Hosting
sectie. Als UseDefaultRepositoryCredentials
dat het is true
, leest Service Fabric de volgende waarden uit het ClusterManifest:
- DefaultContainerRepositoryAccountName (tekenreeks)
- DefaultContainerRepositoryPassword (tekenreeks)
- IsDefaultContainerRepositoryPasswordEncrypted (bool)
- DefaultContainerRepositoryPasswordType (tekenreeks)
Hier volgt een voorbeeld van wat in de sectie in het Hosting
ClusterManifestTemplate.json-bestand kan worden toegevoegd. De Hosting
sectie kan worden toegevoegd bij het maken van een cluster of later in een configuratie-upgrade. Zie Azure Service Fabric-clusterinstellingen wijzigen en Azure Service Fabric-toepassingsgeheimen beheren voor meer informatie
"fabricSettings": [
...,
{
"name": "Hosting",
"parameters": [
{
"name": "EndpointProviderEnabled",
"value": "true"
},
{
"name": "DefaultContainerRepositoryAccountName",
"value": "someusername"
},
{
"name": "DefaultContainerRepositoryPassword",
"value": "somepassword"
},
{
"name": "IsDefaultContainerRepositoryPasswordEncrypted",
"value": "false"
},
{
"name": "DefaultContainerRepositoryPasswordType",
"value": "PlainText"
}
]
},
]
Tokens gebruiken als registerreferenties
Service Fabric ondersteunt het gebruik van tokens als referenties om installatiekopieën voor uw containers te downloaden. Deze functie maakt gebruik van de beheerde identiteit van de onderliggende virtuele-machineschaalset om te verifiëren bij het register, waardoor gebruikersreferenties niet meer nodig zijn. Zie Beheerde identiteiten voor Azure-resources voor meer informatie. Voor het gebruik van deze functie zijn de volgende stappen vereist:
Zorg ervoor dat door het systeem toegewezen beheerde identiteit is ingeschakeld voor de VIRTUELE machine.
Notitie
Sla deze stap over voor door de gebruiker toegewezen beheerde identiteit. De resterende stappen hieronder werken hetzelfde, zolang de schaalset alleen is gekoppeld aan één door de gebruiker toegewezen beheerde identiteit.
Verdeel machtigingen aan de virtuele-machineschaalset om installatiekopieën uit het register op te halen/lezen. Voeg vanuit de blade Toegangsbeheer (IAM) van uw Azure Container Registry in Azure Portal een roltoewijzing toe voor uw virtuele machine:
Wijzig vervolgens het toepassingsmanifest. Voeg in de
ContainerHostPolicies
sectie het kenmerk‘UseTokenAuthenticationCredentials=”true”
toe.<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>
Notitie
De vlag
UseDefaultRepositoryCredentials
die is ingesteld op true terwijlUseTokenAuthenticationCredentials
waar is, veroorzaakt een fout tijdens de implementatie.
Volgende stappen
- Meer informatie over containerregisterverificatie.