我尝试在k8s部署中使用kube-rs/kube:
let client = Client::try_default().await?;
字符串
但当它试图将JWT令牌作为kubeconfig文件处理时,会出现错误:
kubeconfig: (the structure of the parsed kubeconfig is invalid: invalid type: string "XXX"
型
其中XXX是b64令牌。
我找不到任何文档来解释如何以不同的方式示例化客户端,incluster和standalone(standalone的工作原理是因为它在我的开发机器上找到~/.kube/config
)。
k8s集群由Digital Ocean的k8s管理。
我的图表创建了一个服务帐户,该帐户在kube-rs调用示例化客户端的解码令牌中命名,因为它试图将令牌作为kubeconfig
文件处理。
1条答案
按热度按时间5jvtdoz21#
问题与kube-rs的使用无关。我的服务帐户在我的图表中指定不正确,错误地定义了
KUBECONFIG
env var,告诉我的应用程序认为令牌文件是kubeconfig
。删除
KUBECONFIG
env var并删除服务帐户的显式卷挂载解决了这个问题,代码现在足够智能,可以识别它何时处于incluster
上下文中。