Konfigurowanie poświadczeń repozytorium dla aplikacji w celu pobrania obrazów kontenerów

Skonfiguruj uwierzytelnianie rejestru kontenerów, dodając RepositoryCredentials do ContainerHostPolicies sekcji manifestu aplikacji. Dodaj konto i hasło dla rejestru kontenerów (myregistry.azurecr.io w poniższym przykładzie), co umożliwia usłudze pobranie obrazu kontenera z repozytorium.

<ServiceManifestImport>
    ...
    <Policies>
        <ContainerHostPolicies CodePackageRef="Code">
            <RepositoryCredentials AccountName="myregistry" Password="=P==/==/=8=/=+u4lyOB=+=nWzEeRfF=" PasswordEncrypted="false"/>
            <PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
        </ContainerHostPolicies>
    </Policies>
    ...
</ServiceManifestImport>

Zaleca się szyfrowanie hasła repozytorium przy użyciu certyfikatu szyfrowania wdrożonego we wszystkich węzłach klastra. Gdy usługa Service Fabric wdroży pakiet usług w klastrze, zaszyfrowany tekst zostanie odszyfrowany za pomocą certyfikatu szyfrowania. Polecenie cmdlet Invoke-ServiceFabricEncryptText jest używane do utworzenia zaszyfrowanego tekstu dla hasła dodawanego do pliku ApplicationManifest.xml. Zobacz Zarządzanie wpisami tajnymi , aby uzyskać więcej informacji na temat certyfikatów i semantyki szyfrowania.

Konfigurowanie poświadczeń dla całego klastra

Usługa Service Fabric umożliwia skonfigurowanie poświadczeń dla całego klastra, które mogą być używane jako domyślne poświadczenia repozytorium przez aplikacje.

Tę funkcję można włączyć lub wyłączyć, dodając UseDefaultRepositoryCredentials atrybut do ContainerHostPolicies elementu w ApplicationManifest.xml z wartością true lub false .

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

Następnie usługa Service Fabric używa domyślnych poświadczeń repozytorium, które można określić w pliku ClusterManifest w Hosting sekcji . Jeśli UseDefaultRepositoryCredentials jest to true, usługa Service Fabric odczytuje następujące wartości z pliku ClusterManifest:

  • DefaultContainerRepositoryAccountName (ciąg)
  • DefaultContainerRepositoryPassword (ciąg)
  • IsDefaultContainerRepositoryPasswordEncrypted (bool)
  • DefaultContainerRepositoryPasswordType (ciąg)

Oto przykład tego, co można dodać w Hosting sekcji w pliku ClusterManifestTemplate.json. Sekcję Hosting można dodać podczas tworzenia klastra lub nowszego podczas uaktualniania konfiguracji. Aby uzyskać więcej informacji, zobacz Zmienianie ustawień klastra usługi Azure Service Fabric i Zarządzanie wpisami tajnymi aplikacji usługi 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"
          }
        ]
      },
]

Używanie tokenów jako poświadczeń rejestru

Usługa Service Fabric obsługuje używanie tokenów jako poświadczeń do pobierania obrazów dla kontenerów. Ta funkcja wykorzystuje tożsamość zarządzaną bazowego zestawu skalowania maszyn wirtualnych do uwierzytelniania w rejestrze, eliminując konieczność zarządzania poświadczeniami użytkownika. Aby uzyskać więcej informacji , zobacz Tożsamości zarządzane dla zasobów platformy Azure . Korzystanie z tej funkcji wymaga następujących kroków:

  1. Upewnij się, że tożsamość zarządzana przypisana przez system jest włączona dla maszyny wirtualnej.

    Azure Portal: Opcja tworzenia tożsamości zestawu skalowania maszyn wirtualnych

Uwaga

W przypadku tożsamości zarządzanej przypisanej przez użytkownika pomiń ten krok. Pozostałe poniższe kroki będą działać tak samo, o ile zestaw skalowania jest skojarzony tylko z tożsamością zarządzaną przypisaną przez jednego użytkownika.

  1. Udziel uprawnień do zestawu skalowania maszyn wirtualnych, aby ściągać/odczytywać obrazy z rejestru. W bloku Access Control (IAM) Azure Container Registry w Azure Portal dodaj przypisanie roli dla maszyny wirtualnej:

    Dodawanie jednostki maszyny wirtualnej do usługi ACR

  2. Następnie zmodyfikuj manifest aplikacji. ContainerHostPolicies W sekcji dodaj atrybut ‘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>
    

    Uwaga

    Flaga UseDefaultRepositoryCredentials ustawiona na wartość true, natomiast UseTokenAuthenticationCredentials wartość true spowoduje błąd podczas wdrażania.

Następne kroki