3

ポッド内からポッドの秘密を読み取る方法はありますか?

ポッドはdefaultサービス アカウントで作成されるため、インストールしても、デフォルトの SA をいじらない限りkubectl実行できません(避けたい)。get secrets

コマンドを介してプレーンテキストでシークレットを利用できることは知っていますenvが、他の多くの環境変数も同様です。

から来ているものを具体的にどのように見分けることができsecretsますか?

(シークレットをマウントするためにボリュームを使用していません。残念ながら、この質問の範囲を超えた理由で、これは変更できません)

4

4 に答える 4

0

Your pod needs to talk to the api server and ask for the pod definition, to be able to find it.

For that, pod's service account (be it default or a custom one) needs the appropriate Role and RoleBinding that allows that service account to read certain kubernetes resources, in this case, the pod definition itself, and probably the Secret objects in the namespace, so it can find out the corresponding secret (i.e. if there is an environment variable that is coming from a secret via envFrom directive).

The service account token is mounted to the path /var/run/secrets/kubernetes.io/serviceaccount/token in a pod. Using that token, your process can talk to the Kubernetes api from inside the cluster. You can use any Kubernetes client library in any language, or simply kubectl. Then it's a matter of implementing the logic that will find out which secrets are providing which files/variables.

于 2019-08-21T13:53:58.527 に答える