当在Windows DOS提示符中使用kubectl cli时,我得到了一个输入用户名的提示,这很好用,但当我输入用户名后按回车键时,出现了输入密码的提示,然后马上就像我按了回车键一样,没有机会输入密码,看起来是这样的,从屏幕打印可以看出我使用的是kubectl 1.15版本。
如果我用Git Bash试试,它的行为也是一样的,但响应的错误如下图所示。
同样的问题,密码提示没有等待输入。
有谁见过这种情况,或者有什么想法,我如何能提供用户名和密码给kubectl,而不把它存储在配置文件中的普通测试?
此外,我使用的是企业的Kubernates集群,所以没有选项可以移动到一个更当前的版本或做任何其他需要管理员访问的事情。
把这个答案贴在社区wiki上,并附上类似问题的一般指南。
TL;DR
提示输入用户名和密码很可能是配置错误造成的。.kube/config
.
至于。
有谁见过这个或有什么想法 我如何能提供一个用户名和密码 kubectl 不存储它一个普通的测试 在配置文件?
Kubernetes中的认证有很多可能性。它们都有一些优点和缺点。请看下面的链接。
在以下情况下,会出现用户名和密码的提示 .kube/config
文件配置错误。我在下面附上了一个可能的原因。
从正确配置的文件开始 .kube/config
对于 minikube
实例。
apiVersion: v1
clusters:
- cluster:
certificate-authority: PATH_TO_SOMEWHERE/.minikube/ca.crt
server: https://172.17.0.3:8443
name: minikube
contexts:
- context:
cluster: minikube
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: PATH_TO_SOMEWHERE/client.crt
client-key: PATH_TO_SOMEWHERE/client.key
发出上述命令 .kube/config
不应该提示用户和密码,如下所示。
$ kubectl get pods
No resources found in default namespace.
编辑 .kube/config
和变化。
user: minikube
到:
user: not-minikube
将导致。
$ kubectl get pods
Please enter Username: minikube
Please enter Password:
正确配置 .kube/config
在很大程度上取决于所使用的解决方案(如 minikube
, kubeadm
配置的集群,以及一个管理的集群,如 GKE
). 请参考所使用解决方案的官方文件。