【发布时间】:2019-08-13 12:51:41
【问题描述】:
我有以下 Kubernetes REST API 请求
GET https://theserver/api/v1/pods?includeUninitialized=true
并在请求中包含以下 HTTP 标头:
Authorization: Basic ***************
Accept: application/json, */*
User-Agent: kubectl.exe/v1.13.0 (windows/amd64) kubernetes/ddf47ac
结果如下错误
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "Unauthorized",
"reason": "Unauthorized",
"code": 401
}
我已经尝试了以下方法:
- 模拟 kubectl 请求“kubectl describe pods --all-namespaces”工作正常(但我需要 REST)
- 在 newkind101 对Kubernetes REST API 的评论中使用“--v=12”参数来查看底层 REST API 调用 - 看起来和我的一样
- 阅读 Kubernetes 文档 - 但我找不到要发送哪些 HTTP 标头或/和 HTTP 正文值以正确进行身份验证的详细信息(我可以从该文档中的 curl 示例调用中检索到的东西很少)
- 我阅读了Access Kubernetes API using REST APIs,但想在使用 GoDaddy 之类的框架之前了解我的问题
kubectl 似乎比我看到的“--v=12”参数做得更多。该位可能与“.kube/config”文件中的内容有关。我仍然不知道在我的 HTTP 请求中到底应该放什么以及放在哪里。
【问题讨论】:
-
您是如何为您的集群设置身份验证的?如果你想更深入地了解这个话题->kubernetes.io/docs/reference/access-authn-authz/authentication
-
好点,谢谢。我自己没有设置集群,我只是收到了 Url 和凭据(“Basic ******”)来编程。我假设 Url 和凭据是正确的,因为它们与命令行中的 kubectl.exe 一起使用。不过,我会在星期一再次检查。
-
关于身份验证设置的答案:是的,对于简单的设置,这通过 AAD 集成开箱即用。
标签: rest api kubernetes authorization