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

pka*_*mol 2 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
Run Code Online (Sandbox Code Playgroud)

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

请选择您创建的 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
Run Code Online (Sandbox Code Playgroud)

为什么当将 kubernetes ui 指向上述文件时,我得到

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

Kev*_*onk 5

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

kubectl describe secret
Run Code Online (Sandbox Code Playgroud)

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

此仪表板 wiki 页面是关于身份验证的。这就是我发现如何做到这一点的地方。