【问题标题】:Rest endpoint for getting bearer token of a Kubernetes cluster用于获取 Kubernetes 集群的不记名令牌的 Rest 端点
【发布时间】:2021-04-14 01:16:51
【问题描述】:

试图找出 rest api 端点以获取 kubernetes 用户的不记名令牌。

从网上找到答案 kubectl config view -o json -- 我们必须从中提取密码。

我尝试找出上述 ctl 命令的其余端点。但它从配置文件中加载详细信息。

谁能帮我找出休息端点以找出特定用户的不记名令牌。

【问题讨论】:

  • 您能详细说明一下吗?您要访问哪个端点?你是从本地主机还是在 pod 内做的?
  • 我需要从 java 程序中完成。基本上,我将拥有凭据,并且需要为该用户获取令牌。这个我需要通过java程序来做。

标签: kubernetes openshift


【解决方案1】:

您可以关注this article in documentation,它展示了如何针对 API 进行身份验证:

# Check all possible clusters, as your .KUBECONFIG may have multiple contexts:
kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'

# Select name of cluster you want to interact with from above output:
export CLUSTER_NAME="some_server_name"

# Point to the API server referring the cluster name
APISERVER=$(kubectl config view -o jsonpath="{.clusters[?(@.name==\"$CLUSTER_NAME\")].cluster.server}")

# Gets the token value
TOKEN=$(kubectl get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='default')].data.token}"|base64 --decode)

# Explore the API with TOKEN
curl -X GET $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure

TOKEN 中,您可以将服务帐户名称更改为您尝试为其获取令牌的名称,因此您只能运行以下命令来查看令牌:

kubectl get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='default')].data.token}"|base64 --decode

值得一提的是,可以通过使用大多数 kubectl 命令(例如 -v=7)提高日志详细级别来检查 kubcetl 在下面使用的 API 端点,查看kubectl options 了解更多详细信息。

【讨论】:

  • 我得到了这些,这些是 cli 命令,我需要将端点重置为与这些等效...
猜你喜欢
  • 2019-10-06
  • 1970-01-01
  • 2018-09-21
  • 2020-08-20
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多