ProHoster > Blog > Administrasi > Ti hirup kalawan Kubernetes: Kumaha server HTTP teu ni'mat Spaniards
Ti hirup kalawan Kubernetes: Kumaha server HTTP teu ni'mat Spaniards
A wawakil klien kami, anu aplikasi tumpukan resides dina Microsoft awan (Azure), kajawab masalah: anyar, sababaraha requests ti sababaraha klien ti Éropa mimiti ditungtungan ku kasalahan 400 (Panyungkeunan salah). Sadaya aplikasi ditulis dina .NET, disebarkeun dina Kubernetes...
Salah sahiji aplikasi nyaéta API, anu ngalangkungan sadaya lalu lintas tungtungna. Lalu lintas ieu didangukeun ku pangladén HTTP kestrel, ngonpigurasi ku klien .NET sarta hosted dina pod a. Kalawan debugging, kami untung dina harti yén aya pamaké husus anu konsistén dihasilkeun masalah. Nanging, sadayana rumit ku ranté lalu lintas:
Éta sigana ngan ukur tcpdump anu bakal ngabantosan masalah ieu ... tapi kuring bakal ngulang deui ngeunaan ranté lalu lintas:
Panalungtikan
Jelas, langkung saé ngadangukeun lalu lintas dina éta titik husus, dimana Kubernetes geus deployed pod a: volume dump bakal sapertos nu bakal mungkin pikeun manggihan sahenteuna hal geulis gancang. Sareng leres, nalika nalungtik éta, pigura ieu diperhatoskeun:
Saatos pamariksaan langkung caket tina tempat pembuangan, kecap éta katénjo M.laga. Gampang nebak yén teu aya kota M.laga di Spanyol (tapi aya Malang). Ngarebut ideu ieu, urang ningal konfigurasi Ingress, dimana urang ningali anu diselapkeun sabulan katukang (dina pamundut klien) "teu bahaya" snippet:
Bakal mulang 400 Bad request - dina log aplikasi kami bakal nampi kasalahan anu parantos biasa kami:
{
"@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
}
hasil
Hususna Kestrel teu tiasa leres ngolah header HTTP sareng karakter anu leres dina UTF-8, anu dikandung dina nami sajumlah kota anu lumayan.
Faktor tambahan dina hal urang nyaéta yén klien ayeuna henteu ngarencanakeun ngarobih palaksanaan Kestrel dina aplikasi. Tapi, masalah dina AspNetCore sorangan (No.4318, No.7707) aranjeunna nyarios yén ieu moal ngabantosan ...
Pikeun nyimpulkeun: catetan éta henteu deui ngeunaan masalah khusus Kestrel atanapi UTF-8 (dina 2019?!), tapi ngeunaan kanyataan yén mindfulness jeung ulikan konsisten Saban léngkah anu anjeun laksanakeun nalika milarian masalah, engké atanapi engké bakal ngahasilkeun buah. Sing salamet!