Konfigurieren der Anmeldeinformationen des Repositorys für Ihre Anwendung zum Herunterladen von Containerimages
Konfigurieren Sie die Containerregistrierungsauthentifizierung, indem Sie RepositoryCredentials
dem Abschnitt ContainerHostPolicies
Ihres Anwendungsmanifests hinzufügen. Fügen Sie das Konto und Kennwort für die Containerregistrierung (myregistry.azurecr.io im Beispiel unten) hinzu, damit der Dienst das Containerimage aus dem Repository herunterladen kann.
<ServiceManifestImport>
...
<Policies>
<ContainerHostPolicies CodePackageRef="Code">
<RepositoryCredentials AccountName="myregistry" Password="=P==/==/=8=/=+u4lyOB=+=nWzEeRfF=" PasswordEncrypted="false"/>
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
...
</ServiceManifestImport>
Es wird empfohlen, das Repositorykennwort mithilfe eines Verschlüsselungszertifikats zu verschlüsseln, das auf allen Knoten des Clusters bereitgestellt wird. Bei der Bereitstellung des Dienstpakets für den Cluster durch Service Fabric wird das Verschlüsselungszertifikat zum Entschlüsseln des Verschlüsselungstexts verwendet. Das Cmdlet „Invoke-ServiceFabricEncryptText“ wird zum Verschlüsseln des Texts für das Kennwort verwendet, das der Datei „ApplicationManifest.xml“ hinzugefügt wird. Weitere Informationen zu Zertifikaten und zur Verschlüsselungssemantik finden Sie unter Verwalten von Geheimnissen.
Konfigurieren von Anmeldeinformationen für den gesamten Cluster
Mit Service Fabric können Sie Anmeldeinformationen konfigurieren, die für den gesamten Cluster gelten und von Anwendungen als Standardanmeldeinformationen für Repositorys verwendet werden können.
Dieses Feature kann aktiviert oder deaktiviert werden, indem Sie in der Datei „ApplicationManifest.xml“ dem ContainerHostPolicies
-Element das Attribut UseDefaultRepositoryCredentials
mit dem Wert true
oder false
hinzufügen.
<ServiceManifestImport>
...
<Policies>
<ContainerHostPolicies CodePackageRef="Code" UseDefaultRepositoryCredentials="true">
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
...
</ServiceManifestImport>
In Service Fabric werden dann die Standardanmeldeinformationen für Repositorys verwendet, die im ClusterManifest im Abschnitt Hosting
angegeben werden können. Wenn UseDefaultRepositoryCredentials
auf true
festgelegt ist, liest Service Fabric die folgenden Werte aus dem ClusterManifest:
- DefaultContainerRepositoryAccountName (Zeichenfolge)
- DefaultContainerRepositoryPassword (Zeichenfolge)
- IsDefaultContainerRepositoryPasswordEncrypted (Boolescher Wert)
- DefaultContainerRepositoryPasswordType (string)
Hier ist ein Beispiel dafür angegeben, was in der Datei „ClusterManifestTemplate.json“ im Abschnitt Hosting
hinzugefügt werden kann. Der Hosting
-Abschnitt kann bei der Clustererstellung oder später in einem Konfigurationsupgrade hinzugefügt werden. Weitere Informationen finden Sie unter Ändern von Azure Service Fabric-Clustereinstellungen und Verwalten von Azure Service Fabric-Anwendungsgeheimnissen.
"fabricSettings": [
...,
{
"name": "Hosting",
"parameters": [
{
"name": "EndpointProviderEnabled",
"value": "true"
},
{
"name": "DefaultContainerRepositoryAccountName",
"value": "someusername"
},
{
"name": "DefaultContainerRepositoryPassword",
"value": "somepassword"
},
{
"name": "IsDefaultContainerRepositoryPasswordEncrypted",
"value": "false"
},
{
"name": "DefaultContainerRepositoryPasswordType",
"value": "PlainText"
}
]
},
]
Verwenden von Token als Registrierungsanmeldeinformationen
Service Fabric unterstützt die Verwendung von Token als Anmeldeinformationen zum Herunterladen von Images für Ihre Container. Diese Funktion nutzt die verwaltete Identität der zugrunde liegenden VM-Skalierungsgruppe, um sich bei der Registrierung zu authentifizieren, sodass keine Benutzeranmeldeinformationen mehr verwaltet werden müssen. Weitere Informationen finden Sie unter Verwaltete Identitäten für Azure-Ressourcen. Zur Verwendung dieser Funktion sind die folgenden Schritte erforderlich:
Stellen Sie sicher, dass Systemseitig zugewiesene verwaltete Identität für den virtuellen Computer aktiviert ist.
Hinweis
Überspringen Sie diesen Schritt bei benutzerseitig zugewiesenen verwalteten Identitäten. Die weiteren unten aufgeführten Schritte sind die gleichen, sofern die Skalierungsgruppe nur mit einer einzelnen benutzerseitig zugewiesenen verwalteten Identität verknüpft ist.
Erteilen Sie der VM-Skalierungsgruppe Berechtigungen zum Abrufen und Lesen von Images aus der Registrierung. Fügen Sie auf dem Blatt „Access Control (IAM)“ Ihrer Azure Container Registry im Azure-Portal eine Rollenzuweisung für den virtuellen Computer hinzu:
Ändern Sie nun das Anwendungsmanifest. Fügen Sie im Abschnitt
ContainerHostPolicies
das‘UseTokenAuthenticationCredentials=”true”
-Attribut hinzu.<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>
Hinweis
Wenn die Flags
UseDefaultRepositoryCredentials
undUseTokenAuthenticationCredentials
beide auf „true“ festgelegt sind, tritt ein Fehler während der Bereitstellung auf.
Nächste Schritte
- Informieren Sie sich über die Authentifizierung der Containerregistrierung.