为什么Kubectl不要求输入密码?
现在我无需密码就可以使用kubectl从本地计算机访问我自己的集群吗?为什么会这样?
当我想通过ssh访问我的服务器时,我当然需要用户名/密码或允许的ssh密钥。为什么kubectl不要求我输入密码? 对我而言,这似乎并不安全。
答案 0 :(得分:2)
Kubernetes支持定义为here的不同身份验证策略。
通常,Kubernetes集群使用client certificate authentication
。如果您查看自己的~/.kube/config
文件,则会看到类似以下内容的字段:
- name: kubernetes-admin
user:
client-certificate-data: <BASE64 ENCODED X509 CERTIFICATE>
client-key-data: <BASE64 ENCODED PRIVATE KEY FOR THE CERTIFICATE>
您可以看到kubernetes-admin
用户具有客户端证书数据和密钥。群集的Certificate Authority (CA)
信任此证书。
使用kubectl
时,它将用户的client certificate data
发送到您的集群,集群CA
对其进行验证。如果客户端经过验证,则可以访问群集。