我想从 pod 内部访问 OpenShift 和 Kubernetes API,以查询和修改 pod 所属应用程序中的对象。
在文档(https://docs.openshift.org/latest/dev_guide/service_accounts.html)中,我找到了有关如何访问 api 的描述:
$ TOKEN="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)"
$ curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt \
"https://openshift.default.svc.cluster.local/oapi/v1/users/~" \
-H "Authorization: Bearer $TOKEN"
问题是,例如,当我想访问一个 pod 时,我需要知道我所在的命名空间:
https://openshift.default.svc.cluster.local/oapi/v1/namespaces/${namespace}/pods
到目前为止,我发现的唯一方法是将命名空间作为环境变量提交,但我不想要求用户输入该信息。