Puncte:0

Depanarea containerului Windows în serviciul de aplicații Azure

drapel cn

Mă lupt de peste o săptămână să fac un container Windows care să ruleze cu un serviciu de aplicații Azure. Preferința mea inițială a fost să folosesc doar o instanță de container standard, dar se pare că aveți doar opțiunea de rețea publică sau privată, mai degrabă decât personalizată (spre deosebire de containerele Linux). Se pare că dacă rulați containerul Windows într-un serviciu de aplicație, veți obține aceleași opțiuni de rețea pe care le obțineți cu alte site-uri web. Suportul Azure pentru containerele Windows din App Services este aproape un an, dar relativ puține resurse o abordează, în afară de scenarii foarte de bază.

Scopul meu în utilizarea unui container este să rulez la cerere un serviciu Windows de fundal terță parte, fără suprasarcina unei VM. Deoarece folosește un serviciu de aplicație, am decis să adaug un punct final de odihnă de bază asp.net pentru câteva informații despre stare. Containerul meu se bazează pe mcr.microsoft.com/windows/servercore:ltsc2019. Descărc și instalez .net și asp.net core (imaginea de bază are doar .net framework), îmi instalez serviciile, construiesc și rulez site-ul web, apoi punctul meu de intrare este un script Powershell care actualizează unele valori de configurare și rulează asp. punct final net core care gestionează serviciile.

Dacă folosesc portalul, pot selecta opțiunile pentru container vs cod, Windows vs Linux și pot începe lucrurile cu imaginea de pornire rapidă de bază, dar propria mea imagine din Azure Container Registry nu pornește corect. Eu folosesc unul dintre imagini de bază acceptate, și funcționează bine pe mașina mea locală. Pe Azure, creează totul, dar nu pornește niciodată. Cantitatea mică de înregistrare indică faptul că pornește, montează volume de partajare a fișierelor, apoi practic moare:

  • Creați container pentru imagine
  • Încercarea de a porni containerul
  • Pornirea containerului a reușit
  • Containerul a pornit
  • Apelați utilitarul de configurare a containerului
  • Configurarea utilitarului containerului a fost finalizată
  • Containerul a pornit
  • Încercarea de a opri containerul
  • Încercarea de a termina containerul
  • Încercarea de a scoate recipientul
  • Containerul a fost eliminat cu succes

introduceți descrierea imaginii aici

introduceți descrierea imaginii aici

De asemenea, ciudat, chiar și cu imaginea de pornire rapidă, nu văd o instanță Container reală. Probabil că acest lucru se datorează faptului că rulează direct în Planul App Service, deși nimic nu este foarte clar. Din aplicația web, pot merge la App Service Plan (planul Windows Containers) unde, sub Aplicații, arată o singură aplicație cu tipul de „aplicație, container, ferestre”, dar nicăieri nu găsesc acces pentru a vizualiza jurnalele consolei sau rulați un shell așa cum pot cu resurse de tip Container Image. În unele capturi de ecran pe care le-am întâlnit, pot vedea un link „Setări container” sub „Setări”, pe care nu îl am, dar poate că este doar pentru containerele Linux dintr-un anumit motiv.

introduceți descrierea imaginii aici

Deci, cum ar trebui să depanez problemele legate de container când rulez într-un serviciu de aplicație? Oare imi scapa ceva undeva?

Puncte:1
drapel gb

Diagnosticare

Puteți găsi informații valoroase de depanare când faceți clic pe Diagnosticați și rezolvați problemele -> Inițializarea containerului în Azure Web App for Containers.

Kudu

App Service vine cu o consolă de depanare pe care o puteți folosi pentru depanare, explorare, încărcare a fișierelor, precum și puncte finale JSON pentru a obține informații despre mediul dvs. Această consolă se numește Consola Kudu sau Tabloul de bord SCM pentru aplicația dvs.

Puteți accesa acest tablou de bord accesând linkul https://[Numele aplicației dvs.].scm.azurewebsites.net/.

Unele dintre lucrurile pe care Kudu le oferă sunt:

  • setările de mediu pentru descărcarea de diagnosticare a fluxului de jurnal de aplicație consolă de depanare în care puteți rula cmdlet-uri PowerShell și DOS de bază comenzi.

https://docs.microsoft.com/en-us/azure/app-service/troubleshoot-performance-degradation

drapel cn
Multumesc pentru raspuns. Inițializarea containerului nu este o opțiune. Văd „Disponibil și performanță”, „Configurare și management”, „SSL și domenii”, „Evaluări de risc” și „Instrumente de diagnosticare.” Folosind caseta de căutare, nimic nu ne vine pentru cuvântul „container”. Nu pot folosi consola de execuție la distanță Kudu, deoarece containerul nu pornește: „Containerul nu rulează în prezent. Vă rugăm să încercați din nou în câteva minute. Procesul [9888] s-a încheiat! Apăsați ENTER pentru a începe un nou proces cmd.” Ar trebui să pot vedea mesajele stdout generate de rularea dockerfile?
drapel cn
Am întâlnit câteva locuri în fluxul de jurnal unde oferă ceva mai multe informații: „Nu se poate porni containerul. Mesaj de eroare: Nu se poate crea un fișier când acel fișier există deja”, dar apare după secvența de creare, pornire , oprire, etc, așa că nu sunt sigur unde se întâmplă de fapt.
drapel kh
Notă: dacă este implementat într-un ASE, URI-ul Kudu va fi `https://{YourAppName}.scm.{YourASEName}.appserviceenvironment.net/`

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.