Konfigurera autentiseringsuppgifter för lagringsplats för ditt program för att ladda ned containeravbildningar
Konfigurera autentisering av containerregister genom att lägga RepositoryCredentials
till i ContainerHostPolicies
avsnittet i programmanifestet. Lägg till kontot och lösenordet för containerregistret (myregistry.azurecr.io i exemplet nedan), vilket gör att tjänsten kan ladda ned containeravbildningen från lagringsplatsen.
<ServiceManifestImport>
...
<Policies>
<ContainerHostPolicies CodePackageRef="Code">
<RepositoryCredentials AccountName="myregistry" Password="=P==/==/=8=/=+u4lyOB=+=nWzEeRfF=" PasswordEncrypted="false"/>
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
...
</ServiceManifestImport>
Vi rekommenderar att du krypterar lösenordet för lagringsplatsen med hjälp av ett krypteringscertifikat som distribueras till alla noder i klustret. När Service Fabric distribuerar tjänstpaketet till klustret används chiffreringscertifikatet för att avkryptera chiffertexten. Cmdleten Invoke-ServiceFabricEncryptText används för att skapa chiffertexten för lösenordet, som läggs till i filen ApplicationManifest.xml. Mer information om certifikat och krypteringssemantik finns i Hemlig hantering .
Konfigurera klusteromfattande autentiseringsuppgifter
Med Service Fabric kan du konfigurera klusteromfattande autentiseringsuppgifter som kan användas som standardautentiseringsuppgifter för lagringsplatsen av program.
Den här funktionen kan aktiveras eller inaktiveras genom att lägga UseDefaultRepositoryCredentials
till ContainerHostPolicies
attributet i i ApplicationManifest.xml med ett true
eller false
-värde.
<ServiceManifestImport>
...
<Policies>
<ContainerHostPolicies CodePackageRef="Code" UseDefaultRepositoryCredentials="true">
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
...
</ServiceManifestImport>
Service Fabric använder sedan standardautentiseringsuppgifterna för lagringsplatsen som kan anges i ClusterManifest under Hosting
avsnittet . Om UseDefaultRepositoryCredentials
är true
läser Service Fabric följande värden från ClusterManifest:
- DefaultContainerRepositoryAccountName (sträng)
- DefaultContainerRepositoryPassword (sträng)
- IsDefaultContainerRepositoryPasswordEncrypted (bool)
- DefaultContainerRepositoryPasswordType (sträng)
Här är ett exempel på vad som kan läggas till i Hosting
avsnittet i filen ClusterManifestTemplate.json. Avsnittet Hosting
kan läggas till när klustret skapas eller senare i en konfigurationsuppgradering. Mer information finns i Ändra Azure Service Fabric-klusterinställningar och Hantera Azure Service Fabric-programhemligheter
"fabricSettings": [
...,
{
"name": "Hosting",
"parameters": [
{
"name": "EndpointProviderEnabled",
"value": "true"
},
{
"name": "DefaultContainerRepositoryAccountName",
"value": "someusername"
},
{
"name": "DefaultContainerRepositoryPassword",
"value": "somepassword"
},
{
"name": "IsDefaultContainerRepositoryPasswordEncrypted",
"value": "false"
},
{
"name": "DefaultContainerRepositoryPasswordType",
"value": "PlainText"
}
]
},
]
Använda token som registerautentiseringsuppgifter
Service Fabric stöder användning av token som autentiseringsuppgifter för att ladda ned avbildningar för dina containrar. Den här funktionen utnyttjar den hanterade identiteten för den underliggande VM-skalningsuppsättningen för att autentisera till registret, vilket eliminerar behovet av att hantera användarautentiseringsuppgifter. Mer information finns i Hanterade identiteter för Azure-resurser . För att använda den här funktionen krävs följande steg:
Kontrollera att systemtilldelad hanterad identitet är aktiverad för den virtuella datorn.
Anteckning
Hoppa över det här steget för användartilldelad hanterad identitet. De återstående stegen nedan fungerar på samma sätt, så länge skalningsuppsättningen endast är associerad med en enda användartilldelad hanterad identitet.
Bevilja behörigheter till vm-skalningsuppsättningen för att hämta/läsa avbildningar från registret. Lägg till en rolltilldelning för den virtuella datorn på bladet Access Control (IAM) i Azure Container Registry i Azure Portal:
Ändra sedan programmanifestet. I avsnittet
ContainerHostPolicies
lägger du till attributet‘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>
Anteckning
Flaggan
UseDefaultRepositoryCredentials
inställd på true medanUseTokenAuthenticationCredentials
är true orsakar ett fel under distributionen.
Nästa steg
- Läs mer om containerregisterautentisering.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för