ProHoster > Блог > Gudanarwa > Daga rayuwa tare da Kubernetes: Yadda uwar garken HTTP bai yi wa Mutanen Espanya goyon baya ba
Daga rayuwa tare da Kubernetes: Yadda uwar garken HTTP bai yi wa Mutanen Espanya goyon baya ba
Wakilin abokin cinikinmu, wanda tarin aikace-aikacensa ke zaune a cikin girgijen Microsoft (Azure), ya magance matsala: kwanan nan, wasu buƙatun daga wasu abokan ciniki daga Turai sun fara ƙarewa da kuskure 400 (Tambaya maras kyau). Ana rubuta duk aikace-aikacen a cikin NET, an tura su a Kubernetes ...
Ɗaya daga cikin aikace-aikacen shine API, wanda duk zirga-zirga ya zo a ƙarshe. Sabar HTTP tana sauraron wannan zirga-zirga kastrel, abokin ciniki na NET ya saita kuma an shirya shi a cikin kwasfa. Tare da gyara kuskure, mun yi sa'a ta ma'anar cewa akwai takamaiman mai amfani wanda akai-akai sake haifar da matsalar. Koyaya, komai ya rikitar da sarkar zirga-zirga:
Yana da alama cewa tcpdump kawai zai taimaka wajen magance wannan matsala ... amma zan maimaita game da sarkar zirga-zirga:
Bincike
Babu shakka, yana da kyau a saurari zirga-zirga akan wannan kulli na musamman, Inda Kubernetes ya ƙaddamar da kwasfa: ƙarar juji zai zama irin wannan cewa zai yiwu a sami akalla wani abu mai kyau da sauri. Kuma lalle ne, a lõkacin da nazarinsa, da wadannan frame aka lura:
Bayan an duba juji, an lura da kalmar M.laga. Yana da sauƙi a yi tsammani cewa babu birnin M.laga a Spain (amma akwai Malaga). Yin amfani da wannan ra'ayin, mun kalli Ingress configs, inda muka ga wanda aka saka wata daya da ya wuce (a buƙatar abokin ciniki) "mara lahani" snippet:
Zai dawo 400 Bad request - a cikin log ɗin aikace-aikacen za mu sami kuskure wanda ya riga ya saba da mu:
{
"@t":"2019-03-31T12:59:54.3746446Z",
"@mt":"Connection id "{ConnectionId}" bad request data: "{message}"",
"@x":"Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Malformed request: invalid headers.n at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection.TryParseRequest(ReadResult result, Boolean& endConnection)n at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.<ProcessRequestsAsync>d__185`1.MoveNext()",
"ConnectionId":"0HLLLR1J974L9",
"message":"Malformed request: invalid headers.",
"EventId":{
"Id":17,
"Name":"ConnectionBadRequest"
},
"SourceContext":"Microsoft.AspNetCore.Server.Kestrel",
"ThreadId":71
}
Sakamakon
Musamman Kestrel ba zai iya ba daidai aiwatar da taken HTTP tare da ingantattun haruffa a cikin UTF-8, waɗanda ke ƙunshe a cikin sunayen ɗimbin biranen.
Wani ƙarin abu a cikin yanayinmu shine cewa abokin ciniki ba a halin yanzu yana shirin canza aiwatar da Kestrel a cikin aikace-aikacen. Koyaya, batutuwa a cikin AspNetCore kanta (No.4318, No.7707) sun ce hakan ba zai taimaka ba...
Don taƙaitawa: bayanin kula ba game da takamaiman matsalolin Kestrel ko UTF-8 (a cikin 2019?!), amma game da gaskiyar cewa hankali da nazari akai akai Duk matakin da kuka ɗauka yayin neman matsaloli ba dade ko ba dade zai ba da 'ya'ya. Sa'a!