kubernetes:使用默认配置文件对ui进行身份验证失败

时间:2017-12-20 12:23:44

标签: kubernetes kubernetes-security

我已使用kops和以下命令在AWS上成功设置了kubernetes集群:

$ kops create cluster --name=<my_cluster_name> --state=s3://<my-state-bucket> --zones=eu-west-1a --node-count=2 --node-size=t2.micro --master-size=t2.small --dns-zone=<my-cluster-dns>

$ kops update cluster <my-cluster-name> --yes

访问仪表板时,系统会提示我输入令牌或

  

请选择您创建的kubeconfig文件以配置对群集的访问权限。

创建群集时,创建了~/.kube/config,其格式如下:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: 
    <some_key_or_token_here>
    server: https://api.<my_cluster_url>
  name: <my_cluster_name>
contexts:
- context:
    cluster: <my_cluster_name>
    user: <my_cluster_name>
  name: <my_cluster_name>
current-context: <my_cluster_name>
kind: Config
preferences: {}
users:
- name: <my_cluster_name>
  user:
    as-user-extra: {}
    client-certificate-data:
    <some_key_or_certificate>
    client-key-data:
    <some_key_or_certificate>
    password: <password>
    username: admin
- name:<my-cluster-url>-basic-auth
  user:
    as-user-extra: {}
    password: <password>
    username: admin

为什么当把kubernetes ui指向上面的文件时,我得到了

  

身份验证失败。请再试一次。

2 个答案:

答案 0 :(得分:2)

我尝试了同样的问题并遇到了同样的问题。事实证明,kops创建了基于证书的身份验证。无法在Web UI界面上使用基于证书的身份验证。相反,我尝试使用基于令牌的身份验证。下一个问题,你在哪里找到令牌?

SELECT * FROM `table` WHERE  from_time between '00:00:00'  and '23:59:59' 

这将显示群集的默认令牌。我认为这是非常糟糕的安全实践,但如果您使用UI来改善您的学习和理解,那么它将使您朝着正确的方向前进。

This Dashboard wiki page is about authentication.这就是我发现如何做到的地方。

答案 1 :(得分:0)

为了在仪表板中启用基本身份验证,必须提供--authentication-mode=basic标志。默认情况下,它设置为--authentication-mode=token

要获取令牌或了解有关访问控制的更多信息,请参阅here