Programfel som orsakas av felmeddelandet "argumentlistan är för lång"

I den här artikeln beskrivs felsökningsstrategier för att lösa programfel som orsakas av felmeddelandet "argumentlistan är för lång" i Microsoft Azure Kubernetes Service (AKS).

Symptom

Programmet misslyckas när kubelet försöker köra den körbara filen och du får ett felmeddelande som liknar följande utdata:

standard_init_linux.go:228: exec-användarprocess orsakad: argumentlistan är för lång

Orsak 1: Argumentlistan som tillhandahålls till den körbara filen är för lång

Argumenten som tillhandahålls till programmets körbara fil är för långa för att bearbetas.

Lösning: Förkorta argumentlistan

Eliminera alla redundanta eller onödiga argument som du anger för den körbara filen.

Orsak 2: Uppsättningen miljövariabler som tillhandahålls till den körbara filen är för stor

Om för många tjänster distribueras i ett namnområde kan listan över miljövariabler bli för stor och kubelet skapar felmeddelandet när den försöker köra den körbara filen. Felet uppstår eftersom kubelet lägger till miljövariabler som registrerar värden och porten för varje aktiv tjänst, så att tjänsterna kan använda den här informationen för att hitta andra aktiva tjänster.

Lösning 1: Minska antalet tjänster som är aktiva

Du kan minska det totala antalet aktiva tjänster så att kubelet lägger till ett mindre antal övergripande miljövariabler.

Lösning 2: Konfigurera om kubelet så att den inte lägger till miljövariabler för tjänstvärden och porten

I PodSpec-kärn-API:et anger du fältet enableServiceLinks till false. Den här ändringen konfigurerar om kubelet-beteendet så att värden och porten inte läggs till automatiskt som miljövariabler för varje aktiv tjänst.

Varning

Om tjänsten förlitar sig på dessa miljövariabler för att hitta andra tjänster kommer den här fältändringen att leda till att tjänsten misslyckas. För att undvika det här scenariot använder du DNS för tjänstidentifiering i stället för miljövariabler med hjälp av CoreDNS.

Ansvarsfriskrivning för information från tredje part

De produkter från andra tillverkare som diskuteras i denna artikel tillverkas oberoende av Microsoft. Produkternas funktion eller tillförlitlighet kan därför inte garanteras.

Kontakta oss för att få hjälp

Om du har frågor kan du ställa support för Azure-communityn. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.