首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从荚容器中访问Kubernetes api?

如何从荚容器中访问Kubernetes api?
EN

Stack Overflow用户
提问于 2015-06-07 04:55:16
回答 12查看 99.3K关注 0票数 139

我以前能卷曲

代码语言:javascript
运行
复制
https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1beta3/namespaces/default/

作为我的基本URL,但在kubernetes 0.18.0中,它给了我“未经授权”。奇怪的是,如果我使用API (http://172.17.8.101:8080/api/v1beta3/namespaces/default/)的外部IP地址,它就能正常工作。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2015-06-09 17:55:37

在正式文件中,我发现:

https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/#accessing-the-api-from-a-pod

显然,我缺少了以前版本的Kubernetes不需要的安全令牌。由此,我设计了一个比运行代理或在我的容器上安装golang更简单的解决方案。请参阅此示例,该示例从api获取当前容器的信息:

代码语言:javascript
运行
复制
KUBE_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
curl -sSk -H "Authorization: Bearer $KUBE_TOKEN" \
      https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/default/pods/$HOSTNAME

我还使用包含一个简单的二进制文件jq (http://stedolan.github.io/jq/download/)来解析json,以便在bash脚本中使用。

票数 165
EN

Stack Overflow用户

发布于 2015-10-13 18:12:56

每个豆荚都有一个自动应用的服务帐户,允许它访问apiserver。服务帐户以承载令牌的形式提供客户端凭据,以及用于签署apiserver提供的证书的证书颁发机构证书。使用这两部分信息,您可以创建一个安全的、经过身份验证的连接到apisever,而无需使用curl -k (又名curl --insecure):

代码语言:javascript
运行
复制
curl -v --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" https://kubernetes.default.svc/
票数 91
EN

Stack Overflow用户

发布于 2017-08-24 16:26:31

使用客户机。

代码语言:javascript
运行
复制
from kubernetes import client, config

config.load_incluster_config()
v1_core = client.CoreV1Api()
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30690186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档