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 master返回401未经授权的错误_Kubernetes_Minikube_Kubernetes Apiserver - Fatal编程技术网

Kubernetes master返回401未经授权的错误

Kubernetes master返回401未经授权的错误,kubernetes,minikube,kubernetes-apiserver,Kubernetes,Minikube,Kubernetes Apiserver,我在笔记本电脑上安装了minikube、kubectl 当我在中运行kubectl cluster info时,获取以下信息 Kubernetes master is running at https://10.168.99.10:8443 当我连接到时,我得到以下响应 { "kind": "Status", "apiVersion": "v1", "metadata": { }, "status": "Failure", "message": "Unautho

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

当我在中运行
kubectl cluster info
时,获取以下信息

   Kubernetes master is running at https://10.168.99.10:8443
当我连接到时,我得到以下响应

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

  },
  "status": "Failure",
  "message": "Unauthorized",
  "reason": "Unauthorized",
  "code": 401
}
安装kubectl/minikube时,未提示输入用户/密码。
连接的默认用户/密码是什么。

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

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

  • minikube不以基本身份开始。因此默认情况下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代理--address=clusterIP--port 8001--接受主机“.*”
    ,然后您可以在浏览它。

    如何尝试连接minikube中的APIServer?从浏览器还是从终端?嗨,aerokite-我在用浏览器你试过我的第二个选项了吗。代理不,还没有。我现在将尝试您的建议并让您知道。您解决了问题吗?如果您使用浏览器,请搜索如何在浏览器中添加证书。它会起作用的
    $ kubectl proxy --port=8433
    $ curl 127.0.0.1:8433