Произошла ошибка во время активации CodePackage. Не удалось запустить контейнер для образа - PullRequest
0 голосов
/ 04 мая 2018

Я создал образ для приложения ASP.net MVC из 4.7.2-windowsservercore-ltsc2016 Когда я запускаю контейнер локально, используя Docker, все работает как надо. У меня настроен 5-узловый кластер Fabric в Azure, и при первой попытке развертывания я получаю:

Error event: SourceId='System.FM', Property='State'.
Partition is below target replica or instance count.
fabric:/xx/yy -1 1 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  (Showing 0 out of 0 replicas. Total available replicas: 0)

For more information see: http://aka.ms/sfhealth

И когда я смотрю на отдельные узлы, я вижу:

Error event: SourceId='System.Hosting', Property='Download:1.0:1.0'.
There was an error during download

Через некоторое время события Health в узлах изменяются и показывают:

The ServicePackage was activated successfully.

тогда

System.Hosting | CodePackageActivation:Code:EntryPoint

There was an error during CodePackage activation.Container failed to start for image:myrepo.azurecr.io/repo:1.0.0. failed to create endpoint sf-0-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx on network nat: HNS failed with error : The object already exists.

, а затем

There was an error during CodePackage activation.The service host terminated with exit code:7148

, а затем

The ServiceType was unregistered on the node since the Runtime or ApplicationHost closed.

Мой манифест службы имеет полное имя изображения, которое хранится в Azure CR:

<ImageName>myrepo.azurecr.io/repo:1.0.0</ImageName>

Также в моем манифесте приложения у меня есть учетные данные хранилища:

<RepositoryCredentials AccountName="myrepo" Password="xxxxxxxxxxxxxxxxxxxxxxxx" PasswordEncrypted="false"/>

Я рад предоставить больше информации / журналов, просто дайте мне знать, где их взять.

EDIT:

Сервисный манифест:

<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="mymvcPkg"
                 Version="1.0.0"
                 xmlns="http://schemas.microsoft.com/2011/01/fabric"
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ServiceTypes>
    <StatelessServiceType ServiceTypeName="mymvcType" UseImplicitHost="true" />
  </ServiceTypes>
  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ContainerHost>
        <ImageName>myrepo.azurecr.io/repo:1.0.0</ImageName>
      </ContainerHost>
    </EntryPoint>    
  </CodePackage>
  <ConfigPackage Name="Config" Version="1.0.0" />
  <Resources>
    <Endpoints>
      <Endpoint Name="mymvcTypeEndpoint" UriScheme="http" Port="80" Protocol="http" />
    </Endpoints>
  </Resources>
</ServiceManifest>

Манифест приложения:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest ApplicationTypeName="MvcType"
                     ApplicationTypeVersion="1.0.0"
                     xmlns="http://schemas.microsoft.com/2011/01/fabric"
                     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Parameters>
    <Parameter Name="mymvc_InstanceCount" DefaultValue="-1" />
  </Parameters>  
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="mymvcPkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides />
    <Policies>
      <ContainerHostPolicies CodePackageRef="Code">
        <RepositoryCredentials AccountName="myrepo" Password="xxxxxxxxxxxxx" PasswordEncrypted="false"/>
        <PortBinding ContainerPort="80" EndpointRef="mymvcTypeEndpoint"/>
      </ContainerHostPolicies>
    </Policies>
  </ServiceManifestImport>
  <DefaultServices>    
    <Service Name="mymvc" ServicePackageActivationMode="ExclusiveProcess">
      <StatelessService ServiceTypeName="mymvcType" InstanceCount="[mymvc_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
  </DefaultServices>
</ApplicationManifest>

1 Ответ

0 голосов
/ 08 мая 2018

У меня была проблема с типом экземпляра, который я использовал для своих виртуальных машин (узлов) в кластере. Служба поддержки Azure обнаружила ошибку в некоторых журналах:

System.ComponentModel.Win32Exception (0x80004005): Not enough storage is available to process this command

Переход на более мощный экземпляр решил проблему. Microsoft заявляет:

Минимальное поддерживаемое использование VM SKU - Стандарт D1 или Стандарт D1_V2 или эквивалентно минимум 14 ГБ локального SSD

Несмотря на виртуальные машины, я пытался настроить 20 ГБ, они не работали. В настоящее время я провожу тесты на SKU A2 и, кажется, до сих пор работает нормально. Microsoft также заявила:

• Частичные базовые SK VM, такие как Standard A0, не поддерживаются для производственные нагрузки

• Стандартный A1 SKU не поддерживается для производственных рабочих нагрузок для причины производительности.

Учитывая вышеизложенное, D1_V2 (3,5 ГБ ОЗУ, 50 ГБ SSD), вероятно, является самым дешевым жизнеспособным вариантом.

...