10

ポッド内から OpenShift および Kubernetes API にアクセスして、ポッドが属するアプリケーション内のオブジェクトを照会および変更したいと考えています。

ドキュメント ( 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"

問題は、たとえばポッドにアクセスしたい場合、自分がいる名前空間を知る必要があることです:

https://openshift.default.svc.cluster.local/oapi/v1/namespaces/${namespace}/pods

これまでに見つけた唯一の方法は、名前空間を環境変数として送信することですが、ユーザーがその情報を入力する必要がないようにしたいと思います。

4

3 に答える 3

0

Web コンソールの動作をたどって解決策を見つけました。

次の URL で、クラスター管理者の権限がなくても、プロジェクト リストを要求できます。

https://openshift.default.svc.cluster.local/oapi/v1/projects

私が権利を持っているプロジェクトのみがリストされ、名前空間でもある現在のプロジェクトを特定することができます。

もっと簡単な解決策があればいいのですが、これはうまくいきます。

于 2015-07-22T13:04:45.797 に答える