"kubectl exec" in Cygwin gets "Upgrade request required", but not in cmd shell

David Karr davidmichaelkarr@gmail.com
Sun Jun 14 15:38:01 GMT 2020


On Sun, Jun 14, 2020 at 2:25 AM Marco Atzeri wrote:

> On 14.06.2020 08:12, David Karr wrote:
> >
> >
> > On Sat, Jun 13, 2020 at 10:31 PM Marco Atzeri via Cygwin wrote:
> >
> >     On 13.06.2020 20:53, David Karr via Cygwin wrote:
> >      > I've been using kubectl in Cygwin on Windows 10 for quite a
> while, to
> >      > communicate to our in-house k8s clusters. I often use "kubectl
> >     exec" to
> >      > open a shell in a container or directly execute a shell command.
> >     This has
> >      > worked perfectly fine for a long time.
> >      >
> >      > A couple of days ago, I discovered that all of these attempts
> >     were failing
> >      > with "Upgrade request required".  I hadn't upgraded kubectl or
> >     Cygwin in
> >      > quite a while. I doubt our clusters had a k8s upgrade, but it's
> >     entirely
> >      > possible.
> >      >
> >      > A colleague of mine has a very similar desktop configuration
> >     (Windows 10,
> >      > Cygwin), and he's not seeing this symptom.
> >      >
> >      > I noticed that when I ran "kubectl exec" with max verbosity, it
> >     shows the
> >      > resulting "curl" command that it runs. I tried that resulting
> >     command, and
> >      > it results in the same response. I then tried updating my Cygwin
> >     tools and
> >      > retesting, no change.
> >      >
> >      > I then took the entire resulting "kubectl exec" command line and
> >     ran it in
> >      > a "cmd" shell.  No problem at all.  No error.
> >      >
> >      > I know I haven't provided much useful information yet. I wanted
> >     to get an
> >      > initial response before I started providing those diagnostics. Is
> >     there a
> >      > clear issue here that I'm not aware of?
> >      > --
> >
> >     from where is kubectl coming from ?
> >
> >     In cygwin I found only a kubectl.py in the ansible package
> >
> >
> > It's from here:
> >
> https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-windows
> > .
>
> so it is NOT a cygwin program.
>
> If the warning is coming about curl, it is likely
> that using from cygwin you are using the cygwin curl
> and from CMD the windows one
>
>
> $ which -a curl
> /usr/bin/curl
> /cygdrive/c/WINDOWS/system32/curl
>
>
> $ /cygdrive/c/WINDOWS/system32/curl -V
> curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
> Release-Date: 2017-11-14, security patched: 2019-11-05
> Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp
> smtps telnet
>   tftp
> Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
>
> $ /usr/bin/curl -V
> curl 7.66.0 (x86_64-pc-cygwin) libcurl/7.66.0 OpenSSL/1.1.1f zlib/1.2.11
> brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.0.4)
> libssh/0.8.7/openssl/zlib nghttp2/1.37.0
> Release-Date: 2019-09-11
> Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps
> pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
> Features: AsynchDNS brotli Debug GSS-API HTTP2 HTTPS-proxy IDN IPv6
> Kerberos Largefile libz Metalink NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP
> TrackMemory UnixSockets
>
>
> the support Forum https://discuss.kubernetes.io/
> is probably the most indicate place for guidance
>
> Regards
> Marco
>

I thought it was obvious that it was not working because it was calling the
Cygwin curl. I wouldn't have posted here if that wasn't obvious to me.

And since I'm well aware of the k8s community, I already posted questions
about this in the appropriate place, before I posted here.

What I was hoping to get here was some indication or thoughts on why a
process using Windows curl doesn't have a problem, but does have a problem
when using Cygwin Curl. This isn't likely something that Cygwin curl is
doing "wrong", it's just that it's doing something different.

If it matters, the following is an elided version of the resulting curl
command:

    curl -k -v -XPOST  -H "User-Agent: kubectl.exe/v1.18.0 (windows/amd64)
kubernetes/9e99141" -H "Authorization: Bearer ..." -H
"X-Stream-Protocol-Version: v4.channel.k8s.io" -H
"X-Stream-Protocol-Version: v3.channel.k8s.io" -H
"X-Stream-Protocol-Version: v2.channel.k8s.io" -H
"X-Stream-Protocol-Version: channel.k8s.io" 'https://
.../api/v1/namespaces/.../pods/.../exec?command=%2Fbin%2Fls&container=...&stderr=true&stdin=true&stdout=true'

I can't tell from the logging what request body it sent. It's possible it
didn't send any.


More information about the Cygwin mailing list