ProHoster > Блог > Maamulka > Laga soo bilaabo nolosha Kubernetes: Sida server-ka HTTP uusan u jeclayn Isbaanishka
Laga soo bilaabo nolosha Kubernetes: Sida server-ka HTTP uusan u jeclayn Isbaanishka
Wakiil ka socda macmiilkayaga, kaas oo codsigiisa uu ku nool yahay daruuraha Microsoft (Azure), ayaa ka hadlay dhibaatada: dhawaan, qaar ka mid ah codsiyada macaamiisha qaarkood ee Yurub ayaa bilaabay inay ku dhameeyaan qalad 400 (Codsi xun). Dhammaan codsiyada waxay ku qoran yihiin .NET, oo la geeyay Kubernetes...
Mid ka mid ah codsiyada waa API, kaas oo dhammaan taraafikada ay ugu dambeyntii yimaadaan. Taraafikadan waxaa dhagaysta serverka HTTP kestrel, waxaa habeeyay macmiilka NET oo lagu marti galiyay boodh. Marka la tirtiro, waxaan nasiib u yeelanay dareenka in uu jiro isticmaale gaar ah oo si joogto ah u soo saaray dhibaatada. Si kastaba ha ahaatee, wax walba waxaa ku adkaaday silsiladda taraafikada:
Waxay u egtahay in kaliya tcpdump ay caawin doonto xallinta dhibaatadan ... laakiin waxaan ku celin doonaa silsiladda taraafikada:
Baaritaanka
Sida cad, way fiicantahay in la dhageysto taraafikada dhinacaas gaarka ah, halkaas oo Kubernetes ay geysay boodh: mugga qashin-qubka ayaa noqon doona sida ay suurtogal u tahay in la helo ugu yaraan shay si degdeg ah. Oo runtii, markii la baarayay, qaabkan soo socda ayaa la ogaaday:
Marka si dhow loo eego qashinka, ereyga ayaa la dareemay M.laga. Way fududahay in la qiyaaso in aysan jirin magaalada M.laga ee Spain (laakiin waxaa jira Malaga). Qabashada fikraddan, waxaan eegnay qaab-dhismeedka Ingress, halkaas oo aan ku aragnay mid la geliyey bil ka hor (codsiga macmiilka) jajab "aan dhib lahayn".:
Ka dib markii ay curyaamiyeen gudbinta madaxyadan, wax walbaa way fiicnaadeen! (Waxay markiiba caddaatay in codsiga laftiisu aanu u baahnayn madaxyadan.)
Hadda aan eegno dhibaatada guud ahaan. Si fudud ayaa loogu soo saari karaa gudaha arjiga iyada oo la samaynayo codsi telnet ah localhost:80:
soo laaban doona 400 Bad request - Buugga arjiga waxaan ku heli doonaa qalad horeyba naqaanay:
{
"@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
}
Natiijooyinka
Gaar ahaan Kestrel ma awoodo si sax ah u habeeya madaxyada HTTP oo leh xarfaha saxda ah ee UTF-8, kuwaas oo ku jira magacyada tiro aad u badan oo magaalooyin ah.
Arrin dheeraad ah oo kiiskeena ah ayaa ah in macmiilku aanu hadda qorsheynayn inuu beddelo hirgelinta Kestrel ee codsiga. Si kastaba ha ahaatee, arrimaha ku jira AspNetCore lafteeda (No.4318, No.7707) waxay yiraahdeen tani ma caawineyso...
Si loo soo koobo: qoraalku hadda kama hadlayo dhibaatooyinka gaarka ah ee Kestrel ama UTF-8 (2019?!), Laakiin ku saabsan xaqiiqda taas digtoonaan iyo daraasad joogto ah Tallaabo kasta oo aad qaado adigoo raadinaya dhibaatooyin ayaa mar dhow ama dambe midho dhalin doona. Nasiib wacan!