kubernetes - 让 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
问题:
如何创建一个在新创建的命名空间中始终可用的秘密(如上例所示)?
解决方案
default-token 在集群内使用,由集群管理。ServiceAccounts 旨在为 Kubernetes Pod 提供一个身份,供其容器在向 Kubernetes API 服务器执行 API 请求时对其进行身份验证和授权。创建命名空间时将创建默认 ServiceAccount。
秘密资源驻留在命名空间中。Secret 只能被同一命名空间中的 Pod 引用。如果您想在创建额外的 ns 时创建自己的秘密,您将需要一个额外的实用程序。
您可以编写代码与 K8s API 通信定期检查命名空间列表。在创建其他命名空间时创建一个秘密。
推荐阅读
- mysql - 在哪里设置会话时区(MySql)
- c++ - Visual C++ 2017(版本 15.9.3)中的看似错误
- mysql - MYSQL 如何在 MySql 上添加自动递减计划?
- algorithm - 如何包含 alpha 通道以使用 Spatial CIELAB (S-CIELAB) 计算色差?
- ios - React Native:请求权限时崩溃
- python - Dask.dataframe 或替代方案:删除低频项行的可扩展方式
- javascript - 在使用保存之前,我应该在 Mongoose 中验证唯一性吗?
- spring-boot - 调用 [asyncError()] 对具有异步状态 [MUST_DISPATCH] 的请求无效
- sql - Impala - 从一张表计算百分比
- java - 从 Google Cloud pub/sub 反序列化 JSON 并保留 UTF-8 编码