Mai ke ola me Kubernetes: Pehea i makemake ʻole ai ka server HTTP i nā Spaniards
ʻO kahi ʻelele o kā mākou mea kūʻai aku, nona ka waihona noi e noho ana i ke ao mai Microsoft (Azure), i hoʻoponopono i kahi pilikia: i kēia manawa, ua hoʻomaka kekahi mau noi mai kekahi mau mea kūʻai mai ʻEulopa me ka hewa 400 (Tino kikino). Ua kākau ʻia nā noi āpau ma .NET, hoʻonoho ʻia ma Kubernetes...
ʻO kekahi o nā noi ʻo ka API, kahi e hele mai ai nā kaʻa a pau. Hoʻolohe ʻia kēia kaʻa e ka server HTTP kestrel, hoʻonohonoho ʻia e ka mea kūʻai aku .NET a mālama ʻia i loko o kahi pod. Me ka debugging, ua laki mākou ma ke ʻano he mea hoʻohana kikoʻī e hoʻopuka mau i ka pilikia. Eia naʻe, ua paʻakikī nā mea a pau e ke kaulahao kaʻa:
Me he mea lā ʻo tcpdump wale nō e kōkua i ka hoʻoponopono ʻana i kēia pilikia ... akā e haʻi hou wau e pili ana i ke kaulahao kaʻa:
Hoʻomaka
ʻIke loa, ʻoi aku ka maikaʻi o ka hoʻolohe ʻana i ke kaʻa ma kēlā puʻupuʻu kikoʻī, kahi i kau ai ʻo Kubernetes i kahi pod: ʻo ka nui o ka puʻupuʻu e hiki ke loaʻa i kahi mea wikiwiki loa. A ʻoiai, i ka nānā ʻana, ua ʻike ʻia ke kiʻi penei:
Ma ka nānā pono ʻana i ka ʻōpala, ʻike ʻia ka ʻōlelo M.laga. He mea maʻalahi ke kuhi ʻaʻohe kūlanakauhale ʻo M.laga ma Sepania (akā aia ʻO Malalaga). I ka hopu ʻana i kēia manaʻo, nānā mākou i nā configs Ingress, kahi a mākou i ʻike ai i ka mea i hoʻokomo ʻia i hoʻokahi mahina i hala (ma ke noi a ka mea kūʻai aku) "pōʻino" ʻāpana:
E hoʻi mai 400 Bad request - ma ka palapala noi e loaʻa iā mākou kahi hewa i maʻa mua iā mākou:
{
"@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
}
Nā hopena
ʻO Kestrel kūikawā ʻaʻole hiki Hoʻoponopono pololei i nā poʻomanaʻo HTTP me nā huaʻōlelo pololei ma UTF-8, aia i loko o nā inoa o kahi heluna nui o nā kūlanakauhale.
ʻO kahi kumu hou i kā mākou hihia, ʻaʻole hoʻolālā ka mea kūʻai aku i kēia manawa e hoʻololi i ka hoʻokō ʻana o Kestrel i ka noi. Eia naʻe, nā pilikia ma AspNetCore ponoʻī (Helu, Helu) ʻōlelo lākou ʻaʻole kōkua kēia ...
No ka hōʻuluʻulu ʻana: ʻaʻole pili ka memo i nā pilikia kūikawā o Kestrel a i ʻole UTF-8 (ma 2019?!), akā e pili ana i ka ʻoiaʻiʻo. ka noʻonoʻo a me ke aʻo mau ʻO kēlā me kēia ʻanuʻu āu e hana ai i ka ʻimi ʻana i nā pilikia e hua koke a ma hope paha. Pōmaikaʻi iā ʻoe