当前位置: 首页 > 知识库问答 >
问题:

如何使用REST API对运行在Google容器引擎上的Kubernetes集群进行身份验证?

归建安
2023-03-14

我正在编写一个应用程序来监视一个运行在Google容器引擎上的kubernetes集群。在部署我的应用程序的主机上,没有KubectlGCloudCLI,也不允许安装它们。所以我正在尝试通过REST API来做所有的事情。

为了通过REST创建集群,我可以使用GCE REST API和从Google OAuth Playground检索的承载令牌。类似于:

curl -i -X GET -H "Accept: application/json" -H "Content-Type: application/json" -H "Content-Length: 0" -H "Authorization: Bearer $MyBearerToken  https://container.googleapis.com/v1/projects/$PROJECT_ID/zones/$ZONE/serverconfig

我也可以在这里找到Kubernetes REST API参考。所以我的问题是:我如何从我的GCE Kubernetes集群中检索,比如说pod信息,只使用REST api和REST api?

我尝试使用kubectl get pods--v=8,它使用get https://${Kubenetes_IP}/api/v1/namespaces/default/pods。但当我使用相同的apiendpoint与我的GCE承载卷取时。它给出unzuthorized错误消息。

# curl --insecure -H "Authorization: Bearer $MyBearerToken" https://${Kubenetes_IP}/api/v1/namespaces/default/pods
Unauthorized

我这么猜是因为我需要使用一个不同的承载令牌,或者一些其他的身份验证方法。我想知道是否有人有一个快速编程的一行程序?(不使用KubectlGCloud)

引用

这个答案肯定了有一种使用承载令牌的方法,但没有给出一个指针或例子

这个答案似乎也很有希望,但所有提供的链接都被破坏了(api也被弃用)

这个答案假设安装了KubectlGCloud,这在我当前的用例中是不允许的。

共有1个答案

阳德润
2023-03-14

可以从Google OAuth Playground检索令牌

可以通过REST API通过以下curl命令访问Kubernetes

# curl --insecure -H "Authorization: Bearer $MyBearerToken" https://${Kubenetes_IP}/api/v1/namespaces/default/pods

Kubernetes主IP可以通过kubectl get pods-v=8检索,也可以从GCE Web GUI的某个地方检索。

完整的Kubernetes REST API可以在这里找到

确保令牌尚未过期,我认为现在默认的TTL是1小时。

 类似资料:
  • 我的环境设置(AWS EKS)的方式是,在我的中,用户有一个exec配置来调用。 这样,当运行时,它将请求令牌对Kubernetes集群进行身份验证。 我目前正在编写一个将与Kubernetes API交互的客户端应用程序。这是用Python编写的,使用的是官方的Python客户端。 在执行任何示例时,我得到的错误是不允许执行某个操作(例如,列表pods)。我认为问题的根源在于我需要将中的令牌传递

  • 我已经在Kubernetes上建立了Spark独立集群,并试图连接到Kubernetes上没有的Kerberized Hadoop集群。我已经将core-site.xml和hdfs-site.xml放在Spark集群的容器中,并相应地设置了HADOOP_CONF_DIR。我能够成功地在Spark容器中为访问Hadoop集群的principal生成kerberos凭据缓存。但是当我运行spark-s

  • 我是全新的RestTemboard和基本上在REST API也。我想通过Jira REST API检索我的应用程序中的一些数据,但取回401未经授权。在jira rest api留档上找到并发表文章,但不知道如何将其重写为java,因为示例使用curl的命令行方式。我将感谢任何建议或建议如何重写: 进入java使用SpringRest模板。其中ZnJlZDpmcmVk是用户名:密码的Bas64编码

  • 问题内容: 我有一个利用Google Cloud Logging API的go应用程序。 相关代码与他们的文档中的该示例相同:https : //github.com/GoogleCloudPlatform/golang- samples/blob/master/logging/logging_quickstart/main.go 检查它是否可与minikube配合使用(我的有效负载出现在日志查看

  • 我有Kerberos并启用了Hadoop集群。我需要使用Java代码执行HDFS操作。 多谢了。

  • 这可能是一个非常简单的问题,但我似乎不知道如何只允许从我的office IP访问我的kubernetes集群。 在我的防火墙规则中,我看到我的gke节点规则是2个内部ip和我的office ip。 我还看到了我在外部IP地址中看不到的外部IP范围的防火墙规则。该IP地址也不会出现在我的负载均衡器IP中...... 最后,我有一个负载平衡防火墙规则,它允许负载平衡选项卡中的外部IP范围,这是我的ku