java - Kubernetes Java API 不使用提供的用户名密码

标签 java kubernetes

这是关于 Kubernetes Java 客户端版本 0.2 的。我猜想在 Java API 中使用基本身份验证的方法就是这样做

ApiClient client = Config.fromUserPassword( "https://....:6443", "user", "password", false );
Configuration.setDefaultApiClient( client );
CoreV1Api api = new CoreV1Api();
// Make api call like
api.listNode(...)

但是上面的代码总是返回 403 Forbidden。从响应消息来看,请求中似乎没有使用用户/密码。

{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"nodes is forbidden: User \"system:anonymous\" cannot list nodes at the cluster scope","reason":"Forbidden","details":{"kind":"nodes"},"code":403}

我还对代码进行了一些调试,我可能会回答我自己的问题,但看起来在 CoreV1Api 的方法中,它从不添加基本身份验证作为身份验证方法,而仅使用 BearerToken。是否支持基本身份验证或者我应该使用其他 API 类?

最佳答案

许多 kubernetes 集群不设置基本身份验证,仅设置不记名 token 身份验证。您确定您的集群配置了基本身份验证吗?

https://kubernetes.io/docs/admin/authentication/#static-password-file

关于java - Kubernetes Java API 不使用提供的用户名密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48217465/

相关文章:

java - 如何将 byte[] 值转换为十进制?

java - Lucene在java中找不到方法

java - JPanel 不重新绘制,即使调用 repaint() 和 revalidate() 时也是如此

kubernetes - CoreDNS 仅适用于 Kubernetes 集群中的一台主机

jenkins - 使用 Jenkins 部署 Helm 图表时出现 "server could not find the requested resource (get pods)"错误

java - 为什么可以直接使用抽象方法fillOval()?

java - 发送重置密码链接时保护用户 ID 的最佳方法是什么

docker - 在 helm 安装之前将 go 二进制文件移动到 pod 中的惯用方法是什么?

kubernetes - 基于服务器响应的Kubernetes中的条件反向代理

docker - 自动使用容器内容填充空的主机文件夹?