3

我在笔记本电脑上安装了 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 时没有提示输入用户/密码。连接的默认用户/密码是什么。

4

3 回答 3

3

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 

阅读详情:

获取您的 minikube 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

现在您不需要提供任何证书。你被授权了

于 2018-02-11T07:37:31.543 回答
0

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

于 2018-05-02T02:31:39.607 回答
-2

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

  1. minikube dashboard打开 Kubernetes 仪表板。这将使用该NodePort服务kubernetes-dashboard并在浏览器中打开 kubernetes 仪表板 GUI。
  2. Minikubekubeconfig~/.kube/config笔记本电脑上创建。因此,只需kubectl在 Minikube 中使用 k8s。
  3. kubectl可以在笔记本电脑上查看配置kubectl config view
于 2018-02-11T05:42:55.557 回答