Open TripleDogDare opened 4 years ago
If a five second request timeout is onerous, there is a short-term fix: do not use the kubectl dispatcher. kubectl dispatcher is packaged with several other versions of kubectl that do not dispatch. Try the following command:
ls -l /opt/google-cloud-sdk/bin/kubectl*
You should get an output similar to mine:
-rwxr-xr-x 1 sean sean 58618535 Jan 1 1980 /home/sean/google-cloud-sdk/bin/kubectl
-rwxr-xr-x 1 sean sean 43119424 Jan 1 1980 /home/sean/google-cloud-sdk/bin/kubectl.1.14
-rwxr-xr-x 1 sean sean 43059232 Jan 1 1980 /home/sean/google-cloud-sdk/bin/kubectl.1.15
-rwxr-xr-x 1 sean sean 42958848 Jan 1 1980 /home/sean/google-cloud-sdk/bin/kubectl.1.16
-rwxr-xr-x 1 sean sean 43503616 Jan 1 1980 /home/sean/google-cloud-sdk/bin/kubectl.1.17
-rwxr-xr-x 1 sean sean 44036096 Jan 1 1980 /home/sean/google-cloud-sdk/bin/kubectl.1.18
Notice you can directly call the 1.15 version of kubectl with the following command: kubectl.1.15
(or whatever version most closely aligns with the API Server you are talking to). This will not have a five second request timeout of the dispatcher which attempts to get the server version. If you want a more permanent solution, then move kubectl.1.15
to kubectl
.
The long-term fixes are:
1) If the request should be failing immediately, figure out why it is not and fix that.
2) Add a --dispatcher-timeout
flag to change the request timeout from the currently fixed five seconds.
I will open other issues for these.
I need a way to disable dispatcher or shorten the timeout.
Note the 5 second delay just to run kubectl with 0 arguments.
$ strace -r -tt kubectl &>strace.log