Sdílet prostřednictvím


Konfigurace přihlašovacích údajů úložiště pro vaši aplikaci pro stahování imagí kontejneru

Nakonfigurujte ověřování registru kontejneru přidáním RepositoryCredentials do ContainerHostPolicies čá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 šifrovat heslo úložiště pomocí certifikátu š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 sémantice certifikátů a š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 konfigurovat 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 lze povolit nebo zakázat přidáním atributu UseDefaultRepositoryCredentials do ContainerHostPolicies ApplicationManifest.xml s true hodnotou nebo false hodnotou.

<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 clusterManifestu Hosting v části. Pokud UseDefaultRepositoryCredentials ano 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 lze přidat do oddílu Hosting v souboru ClusterManifestTemplate.json. Oddíl Hosting je možné přidat při vytváření clusteru nebo později v upgradu konfigurace. Další informace najdete v tématu 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žívání tokenů jako přihlašovacích údajů ke stahování imagí pro kontejnery. Tato funkce využívá spravovanou identitu základní škálovací sady virtuálních počítačů k ověření v registru a 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 budou fungovat stejně, pokud je škálovací sada přidružená pouze k jedné spravované identitě přiřazené uživatelem.

  1. Udělte oprávnění škálovací sadě virtuálních počítačů pro vyžádání a čtení imagí z registru. V okně Řízení přístupu (IAM) služby Azure Container Registry na webu Azure Portal přidejte přiřazení role pro virtuální počítač:

    Přidání instančního objektu 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 true, zatímco UseTokenAuthenticationCredentials je true, způsobí chybu během nasazení.

Další kroky

  • Přečtěte si další informace o ověřování registru kontejneru.