Opslagplaatsreferenties configureren voor uw toepassing om containerinstallatiekopieën te downloaden

Configureer containerregisterverificatie 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), zodat 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 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 referenties voor het hele cluster configureren die door toepassingen kunnen worden gebruikt als standaardreferenties voor opslagplaatsen.

Deze functie kan worden in- of uitgeschakeld door het UseDefaultRepositoryCredentials kenmerk toe te voegen aan ContainerHostPolicies in ApplicationManifest.xml met de true waarde of false .

<ServiceManifestImport>
    ...
    <Policies>
        <ContainerHostPolicies CodePackageRef="Code" UseDefaultRepositoryCredentials="true">
            <PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
        </ContainerHostPolicies>
    </Policies>
    ...
</ServiceManifestImport>

Service Fabric gebruikt vervolgens de standaardreferenties voor de opslagplaats die kunnen worden opgegeven in clustermanifest in de Hosting sectie . Als UseDefaultRepositoryCredentials 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 kan worden toegevoegd in de Hosting sectie in het bestand ClusterManifestTemplate.json. De Hosting sectie kan worden toegevoegd bij het maken van het 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 hoeven te worden beheerd. 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 VM.

    Azure Portal: de identiteitsoptie virtuele-machineschaalset maken

Notitie

Sla deze stap over voor door de gebruiker toegewezen beheerde identiteit. De resterende stappen hieronder werken hetzelfde, zolang de schaalset maar is gekoppeld aan één door de gebruiker toegewezen beheerde identiteit.

  1. Verleng machtigingen aan de virtuele-machineschaalset om installatiekopieën uit het register op te halen/te lezen. Voeg op de blade Access Control (IAM) van uw Azure Container Registry in de 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 true is, veroorzaakt een fout tijdens de implementatie.

Volgende stappen