Minikube:kubectl 不使用提供的令牌权限



使用minikube,运行以下命令时:

kubectl -v=11 --kubeconfig /dev/null --insecure-skip-tls-verify -s http://localhost:8001 --token "invalid" -n namespace get pods

当我不想要答案的时候,我有一个答案。我不知道它是如何被授权的。此外,如果我使用具有特定权限的有效令牌,则不会使用这些权限。

kubectl--token=$token不';t使用令牌的权限运行并不能回答我的问题,因为我指定使用/dev/null作为配置文件。

知道吗?

我将尝试总结我在评论中提供的答案。

问题是:为什么运行kubectl -s http://localhost:8001 --kubeconfig /dev/null --token <invalid_token>(其中:8001是kubectl代理打开的端口(会像我被授权一样返回,而不应该是因为我将所有可能的授权选项设置为null或不正确的值

答案是kubectl proxy打开一个端口并为您处理所有授权,所以您不必这样做。现在要访问kubernetes的RESTapi,您只需要使用curl localhost:8001/...。没有令牌和证书。

因为您已经获得了kubectl proxy的授权,所以使用kubectl并将其指向localhost:8001会导致它不需要授权,也不需要任何令牌来访问k8s。


作为一种替代方案,您可以检查当您运行相同的程序时会发生什么,但不是通过kubectl proxy连接,而是直接使用kubernetes端口。

你提到你使用的是minikube,所以默认情况下是8443 端口

$ kubectl --kubeconfig /dev/null -s https://$(minikube ip):8443 --token "invalid" --insecure-skip-tls-verify get pods
error: You must be logged in to the server (Unauthorized)

正如你现在看到的,它如预期的那样工作。

相关内容

  • 没有找到相关文章

最新更新