Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 为什么kubectl不要求密码?_Kubernetes_Kubectl - Fatal编程技术网

Kubernetes 为什么kubectl不要求密码?

Kubernetes 为什么kubectl不要求密码?,kubernetes,kubectl,Kubernetes,Kubectl,为什么kubectl不要求密码 我已经用kubeadm在我的服务器上创建了一个kubernetes集群 然后我在本地机器上安装了kubectl 并将/etc/kubernetes/admin.conf的内容从我的服务器复制到本地机器上的~/.kube/config文件中 现在我可以使用kubectl从本地机器访问自己的集群,而不需要密码?为什么会这样 当我想通过ssh访问我的服务器时,我当然需要一个用户/密码或一个允许的ssh密钥。为什么kubectl不向我要密码? 在我看来,这似乎是不安全

为什么kubectl不要求密码

  • 我已经用kubeadm在我的服务器上创建了一个kubernetes集群
  • 然后我在本地机器上安装了kubectl
  • 并将/etc/kubernetes/admin.conf的内容从我的服务器复制到本地机器上的~/.kube/config文件中
现在我可以使用kubectl从本地机器访问自己的集群,而不需要密码?为什么会这样

当我想通过ssh访问我的服务器时,我当然需要一个用户/密码或一个允许的ssh密钥。为什么kubectl不向我要密码?
在我看来,这似乎是不安全的

Kubernetes支持不同的身份验证策略,定义如下

通常,Kubernetes集群使用
客户端证书身份验证
。如果查看
~/.kube/config
文件,您将看到类似以下内容的字段:

- name: kubernetes-admin
  user:
    client-certificate-data: <BASE64 ENCODED X509 CERTIFICATE>
    client-key-data:  <BASE64 ENCODED PRIVATE KEY FOR THE CERTIFICATE>
-名称:kubernetes管理员
用户:
客户端证书数据:
客户端密钥数据:
您可以看到
kubernetes admin
用户拥有客户机证书数据和密钥。此证书受群集的
证书颁发机构(CA)
信任


当您使用
kubectl
时,它会将用户的
客户端证书数据
发送到您的集群,而您的集群
CA
会验证它。如果客户端已验证,则可以访问群集。

您知道-您可以使用ssh密钥访问服务器,而无需输入密码,对吗?是的,只有在我的ssh私钥没有密码的情况下-对吗?这是“”类型的身份验证。简单地说,该算法允许使用公钥/非私钥来使用数学运算验证私钥/私钥所有者的身份。但是在我的工作站上复制kubernetes/admin.conf就像将根密码从我的服务器复制到本地文件系统中一样。这是我不明白的。所以把它放在服务器上,然后从那里命令k8s集群。在其他方面,kubeconfig中的帐户可以具有不同的权限集(不是根权限集)或在webhook模式下工作(但主题不同)。客户端证书是一个选项,但肯定不是最常见的,OIDC是迄今为止最常见的身份验证选项。kubectl的客户端证书通常不是一个好主意,因为没有撤销模型。谢谢您的回答。我现在更好地理解了它,但管理访问似乎不是那么容易。我找到了创建客户端证书的方法。但这不是一个简单的方法。我想我可以在kubernetes主节点的任何地方提供我的公共ssh密钥,以便使用api服务器和我的私钥。