Kubernetes master返回401未经授权的错误
我在笔记本电脑上安装了minikube、kubectl 当我在中运行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
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~/.kube/config
上创建kubeconfig
。因此,只需使用kubectl
即可在Minikube中使用k8skubectl 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