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:

  1. Ujistěte se, že je pro virtuální počítač povolená spravovaná identita přiřazená systémem .

    Azure Portal: Možnost vytvoření identity škálovací sady virtuálních počítačů

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.

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

    Přidání objektu zabezpečení virtuálního počítače do ACR

  2. 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ímco UseTokenAuthenticationCredentials hodnota true způsobí chybu během nasazení.

Další kroky