从openshift pod中找到apiserver的推荐方法是什么?

时间:2018-04-17 02:41:25

标签: kubernetes openshift

来自Kubernetes文档(Accessing the API from a Pod):

  

在pod中找到apiserver的推荐方法是使用 kubernetes DNS名称,该名称解析为服务IP,然后服务IP将路由到apiserver。

然而,当我在OpenShift pod的shell中时,这个'kubernetes'的dns名称似乎不存在。我预计它会默认存在,因为Kubernetes在下面运行,但我错了吗?这是使用OpenShift Container Platform 3.7版。

是否有一种标准方法可以访问apiserver而不是将其作为环境变量或其他内容传递?

1 个答案:

答案 0 :(得分:3)

在OpenShift中,您可以使用:

https://openshift.default.svc.cluster.local

您还可以使用环境变量中的值:

KUBERNETES_SERVICE_PORT
KUBERNETES_SERVICE_HOST

如:

#!/bin/sh

SERVER=`https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT`
TOKEN=`cat /var/run/secrets/kubernetes.io/serviceaccount/token`

URL="$SERVER/oapi/v1/users/~"

curl -k -H "Authorization: Bearer $TOKEN" $URL

请注意,运行容器的default服务帐户不具有REST API访问权限。最好的办法是在项目中创建一个新的服务帐户,并授予使用REST API端点进行所需操作的权限。