Aracılığıyla paylaş


Kapsayıcı görüntülerini indirmek için uygulamanızın depo kimlik bilgilerini yapılandırma

Uygulama bildiriminizin bölümüne ekleyerek RepositoryCredentials kapsayıcı kayıt defteri kimlik doğrulamasını ContainerHostPolicies yapılandırın. Kapsayıcı kayıt defterinizin hesabını ve parolasını ekleyin (aşağıdaki örnekte myregistry.azurecr.io ), hizmetin depodan kapsayıcı görüntüsünü indirmesine olanak tanır.

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

Kümenin tüm düğümlerine dağıtılan bir şifreleme sertifikası kullanarak depo parolasını şifrelemeniz önerilir. Service Fabric hizmet paketi kümeye dağıttığında, şifre metninin şifresini çözmek için şifreleme sertifikası kullanılır. Parolanın şifre metni Invoke-ServiceFabricEncryptText cmdlet’i kullanılarak oluşturulur ve bu metin ApplicationManifest.xml dosyasına eklenir. Sertifikalar ve şifreleme semantiği hakkında daha fazla bilgi için bkz . Gizli Dizi Yönetimi .

Küme genelinde kimlik bilgilerini yapılandırma

Service Fabric, uygulamalar tarafından varsayılan depo kimlik bilgileri olarak kullanılabilecek küme genelinde kimlik bilgilerini yapılandırmanıza olanak tanır.

Bu özellik, özniteliği ContainerHostPolicies veya değeriyle true ApplicationManifest.xml eklenerek UseDefaultRepositoryCredentials etkinleştirilebilir veya false devre dışı bırakılabilir.

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

Ardından Service Fabric, bölümünün altındaki Hosting ClusterManifest'te belirtilebilen varsayılan depo kimlik bilgilerini kullanır. ise UseDefaultRepositoryCredentialstrue, Service Fabric ClusterManifest'ten aşağıdaki değerleri okur:

  • DefaultContainerRepositoryAccountName (dize)
  • DefaultContainerRepositoryPassword (dize)
  • IsDefaultContainerRepositoryPasswordEncrypted (bool)
  • DefaultContainerRepositoryPasswordType (dize)

Aşağıda ClusterManifestTemplate.json dosyasındaki bölümün içine Hosting neler eklenebileceğini gösteren bir örnek verilmiştir. Bölüm Hosting , küme oluşturma sırasında veya daha sonra yapılandırma yükseltmesinde eklenebilir. Daha fazla bilgi için bkz. Azure Service Fabric küme ayarlarını değiştirme ve Azure Service Fabric uygulama gizli dizilerini yönetme

"fabricSettings": [
	...,
	{
        "name": "Hosting",
        "parameters": [
          {
            "name": "EndpointProviderEnabled",
            "value": "true"
          },
          {
            "name": "DefaultContainerRepositoryAccountName",
            "value": "someusername"
          },
          {
            "name": "DefaultContainerRepositoryPassword",
            "value": "somepassword"
          },
          {
            "name": "IsDefaultContainerRepositoryPasswordEncrypted",
            "value": "false"
          },
          {
            "name": "DefaultContainerRepositoryPasswordType",
            "value": "PlainText"
          }
        ]
      },
]

Belirteçleri kayıt defteri kimlik bilgileri olarak kullanma

Service Fabric, kapsayıcılarınızın görüntülerini indirmek için kimlik bilgileri olarak belirteçleri kullanmayı destekler. Bu özellik, kayıt defterinde kimlik doğrulaması yapmak için temel alınan sanal makine ölçek kümesinin yönetilen kimliğinden yararlanarak kullanıcı kimlik bilgilerini yönetme gereksinimini ortadan kaldırır. Daha fazla bilgi için bkz. Azure kaynakları için yönetilen kimlikler . Bu özelliği kullanmak için aşağıdaki adımlar gerekir:

  1. Vm için Sistem Tarafından Atanan Yönetilen Kimliğin etkinleştirildiğinden emin olun.

    Azure portal: Sanal makine ölçek kümesi kimliği oluşturma seçeneği

Not

Kullanıcı tarafından atanan yönetilen kimlik için bu adımı atlayın. Ölçek kümesi yalnızca kullanıcı tarafından atanan tek bir yönetilen kimlikle ilişkili olduğu sürece, aşağıdaki adımların kalanları aynı şekilde çalışır.

  1. Kayıt defterinden görüntüleri çekmek/okumak için sanal makine ölçek kümesine izinler verin. Azure portal Azure Container Registry Access Control (IAM) dikey penceresinden sanal makineniz için bir rol ataması ekleyin:

    ACR'ye VM sorumlusu ekleme

  2. Ardından uygulama bildiriminizi değiştirin. ContainerHostPolicies bölümünde özniteliğini ‘UseTokenAuthenticationCredentials=”true”ekleyin.

      <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>
    

    Not

    True iken UseTokenAuthenticationCredentials true olarak ayarlanan bayrakUseDefaultRepositoryCredentials, dağıtım sırasında hataya neden olur.

Sonraki adımlar