【发布时间】:2018-06-19 19:45:29
【问题描述】:
这是关于 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 类?
【问题讨论】:
-
Kubernestes Dashboard 仅提供输入 Kubeconfig 或 Bearer Token 的选项。它没有提供输入用户名/密码的选项。
-
我的用例不仅是 Kubernetes Dashboard,而且还编写了一个外部 Java 客户端来获取有关节点、集群等的信息。我指的 Java 客户端在这里是 github.com/kubernetes-client/java
-
我只是提供仅供参考,仪表板也不使用基本身份验证,这可能意味着不支持基本身份验证。
标签: java kubernetes