首页 > 解决方案 > 让 kubernetes 中的所有命名空间都可以使用 secret

问题描述

当你在 Kubernetes 中创建一个新的命名空间时,其中总会有一个default-token可用的秘密。

$ kubectl create namespace test
$ kubectl get secrets -n test
NAME                  TYPE                                  DATA   AGE
default-token-wh7hv   kubernetes.io/service-account-token   3      6m10s

问题:

如何创建一个在新创建的命名空间中始终可用的秘密(如上例所示)?

标签: kubernetes

解决方案


default-token 在集群内使用,由集群管理。ServiceAccounts 旨在为 Kubernetes Pod 提供一个身份,供其容器在向 Kubernetes API 服务器执行 API 请求时对其进行身份验证和授权。创建命名空间时将创建默认 ServiceAccount。

秘密资源驻留在命名空间中。Secret 只能被同一命名空间中的 Pod 引用。如果您想在创建额外的 ns 时创建自己的秘密,您将需要一个额外的实用程序。

您可以编写代码与 K8s API 通信定期检查命名空间列表。在创建其他命名空间时创建一个秘密。


推荐阅读