Kubernetes master正在返回401 Unauthorized错误

时间:2018-02-11 04:56:39

标签: kubernetes minikube kubernetes-apiserver

我在笔记本电脑上安装了minikube,kubectl。

当我在kubectl cluster-info中运行时,获取以下内容

   Kubernetes master is running at https://10.168.99.10:8443

当我连接到https://10.168.99.10:8443时,我得到以下回复。

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "Unauthorized",
  "reason": "Unauthorized",
  "code": 401
}

安装时,kubectl / minikube没有提示用户/密码。 什么是连接的默认用户/密码。

3 个答案:

答案 0 :(得分:2)

minikube 不以basic-auth开头。所以没有用户名&默认情况下,apiserver的密码。要访问apiserver,您需要使用apiserver证书。那就是你的授权方式。

curl https://192.168.99.100:8443 --cert ~/.minikube/apiserver.crt  --key ~/.minikube/apiserver.key --cacert ~/.minikube/ca.crt 

查看详情:

获取您的迷你人IP地址

$ minikube ip
192.168.99.100

默认情况下,API服务器在8443上运行

现在尝试使用此

连接apiserver
$ curl https://192.168.99.100:8443  
curl: (60) SSL certificate problem: unable to get local issuer certificate

需要提供CA证书

$ curl https://192.168.99.100:8443  --cacert ~/.minikube/ca.crt 
{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "Unauthorized",
  "reason": "Unauthorized",
  "code": 401
}⏎ 

现在您需要提供apiserver SSL证书和密钥

curl https://192.168.99.100:8443 --cert ~/.minikube/apiserver.crt  --key ~/.minikube/apiserver.key --cacert ~/.minikube/ca.crt 
{
  "paths": [
    "/api",
    "/api/v1",
    ....
    "/ui",
    "/ui/",
    "/version"
  ]
}⏎
  

注意:您也可以代理apiserver

$ kubectl proxy --port=8433
$ curl 127.0.0.1:8433

现在您不需要提供任何证书。并且您已获得授权

答案 1 :(得分:0)

看起来你在做curl https://10.168.99.10:8443 -k。没有必要这样做。事实上,您所看到的响应是预期的,因为您没有对kubernetes进行身份验证。

  1. 执行minikube dashboard打开kubernetes仪表板。这将使用NodePort服务的kubernetes-dashboard并在浏览器中打开kubernetes仪表板GUI。
  2. Minikube在笔记本电脑上的kubeconfig处创建~/.kube/config。因此,只需使用kubectl在Minikube中使用k8。
  3. 可以通过笔记本电脑上的kubectl查看kubectl config view配置。

答案 2 :(得分:0)

请尝试放置kubectl proxy --address=clusterIP --port 8001 --accept-hosts '.*',然后您可以在http://localhost:8001浏览它。