Delen via


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:

  1. Zorg ervoor dat door het systeem toegewezen beheerde identiteit is ingeschakeld voor de VIRTUELE machine.

    Azure Portal: de identiteitsoptie voor virtuele-machineschaalsets maken

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.

  1. 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:

    VM-principal toevoegen aan ACR

  2. 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 terwijl UseTokenAuthenticationCredentials waar is, veroorzaakt een fout tijdens de implementatie.

Volgende stappen