Kubernetes master is returning 401 Unauthorized error

10,819

minikube doesn't start with basic-auth. So there is not username & password for apiserver by default. To access apiserver, you need to use apiserver certificates. That`s how you will be authorized.

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

See details:

Get your minikube IP address

$ minikube ip
192.168.99.100

The API server runs on 8443 by default

Now try to connect apiserver using this

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

Need to provide CA certificate

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

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

Now you need to provide apiserver SSL certificate and key

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"
  ]
}⏎

Note: You can proxy apiserver too

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

Now you do not need to provide any certificates. And you are authorized

Share:
10,819
Rajkumar Natarajan
Author by

Rajkumar Natarajan

Updated on June 07, 2022

Comments

  • Rajkumar Natarajan
    Rajkumar Natarajan almost 2 years

    I have installed minikube, kubectl in my laptop.

    When I run kubectl cluster-info in get the below

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

    when I connect to https://10.168.99.10:8443 I get the below response.

    {
      "kind": "Status",
      "apiVersion": "v1",
      "metadata": {
    
      },
      "status": "Failure",
      "message": "Unauthorized",
      "reason": "Unauthorized",
      "code": 401
    }
    

    When installed kubectl/minikube didn't prompt for user/password. What is the default user/password to connect.

  • Shahriar
    Shahriar about 6 years
    If you use browser, search how to add certificate in browser. It will work