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:
Upewnij się, że tożsamość zarządzana przypisana przez system jest włączona dla maszyny wirtualnej.
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.
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:
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, natomiastUseTokenAuthenticationCredentials
wartość true spowoduje błąd podczas wdrażania.
Następne kroki
- Zobacz więcej na temat uwierzytelniania rejestru kontenerów.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla