Konfigurowanie poświadczeń repozytorium dla aplikacji w celu pobrania obrazów kontenerów
Skonfiguruj uwierzytelnianie rejestru kontenerów przez dodanie 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 konfigurowanie 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
to true
, usługa Service Fabric odczytuje następujące wartości z pliku ClusterManifest:
- DefaultContainerRepositoryAccountName (ciąg)
- DefaultContainerRepositoryPassword (ciąg)
- IsDefaultContainerRepositoryPasswordEncrypted (wartość logiczna)
- DefaultContainerRepositoryPasswordType (ciąg)
Oto przykład tego, co można dodać wewnątrz Hosting
sekcji w pliku ClusterManifestTemplate.json. Sekcję Hosting
można dodać podczas tworzenia klastra lub nowszej w ramach 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 wykonania następujących kroków:
Upewnij się, że dla maszyny wirtualnej jest włączona tożsamość zarządzana przypisana przez system.
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 jedną tożsamością zarządzaną przypisaną przez użytkownika.
Udziel uprawnień do zestawu skalowania maszyn wirtualnych w celu ściągania/odczytywania obrazów z rejestru. W bloku Kontrola dostępu (IAM) usługi Azure Container Registry w witrynie Azure Portal dodaj przypisanie roli dla maszyny wirtualnej:
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 true, gdyUseTokenAuthenticationCredentials
jest true, spowoduje błąd podczas wdrażania.
Następne kroki
- Zobacz więcej na temat uwierzytelniania rejestru kontenerów.