--- title: 联邦 Secret content_template: templates/concept --- {{% capture overview %}} {{< note >}} {{< include "federation-current-state.md" >}} {{< /note >}} 本指南解释了怎样使用联邦控制平面中的 secret。 联邦控制平面中的 secret (请参考本文的 "联邦 secrets" 章节) 和传统的[Kubernetes Secrets](/docs/concepts/configuration/secret/)非常类似并提供相同的功能。 在联邦控制平面中创建它们可以确保它们在联邦中的所有集群之间同步。 {{% /capture %}} {{% capture body %}} ## 前提条件 本指南假设您安装好了 Kubernetes 集群联邦。如果没有,请先查看 [federation admin guide](/docs/admin/federation/) 来学习怎样安装集群联邦(也可以让您的管理员替您完成安装)。 其他的教程,例如 Kelsey Hightower 编写的 [这个教程](https://github.com/kelseyhightower/kubernetes-cluster-federation) 也会帮到你。 也希望您大概了解一些基本的 [Kubernetes 知识](/docs/setup/) 特别是和 [Secrets](/docs/concepts/configuration/secret/) 相关的知识。 ## 创建联邦 Secret 联邦 Secret 的 API 与传统的 Kubernetes Secret 的 API 100% 兼容。 你可以通过向联邦的 ApiServer 发出请求来创建 Secret。 ``` shell kubectl --context=federation-cluster create -f mysecret.yaml ``` `--context=federation-cluster` 参数告诉 kubectl 将请求提交给联邦 ApiServer 而不是将其发送到 Kubernetes 集群上。 在创建完联邦 secret 后,联邦控制平面将在所有底层 Kubernetes 集群中创建匹配的 secret。 您可以通过检查每个底层集群来验证这一点,例如: ``` shell kubectl --context=gce-asia-east1a get secret mysecret ``` 以上假设您在客户端上为该区域的集群配置了一个名为 'gce-asia-east1a' 的上下文。 底层集群中的这些 secret 将与联邦 secret 相匹配。 ## 更新联邦 secret 您可以像更新 Kubernetes secret 那样更新联邦 secret;但是,对于联邦 secret,必须将请求发送到联邦 ApiServer,而非某个 Kubernetes 集群上。 联邦控制平面确保每当联邦 secret 被更新时,它来更新所有底层集群中的相应 secret ,以便相互匹配。 ## 删除联邦 Secret 您可以像删除 Kubernetes secret 那样删除联邦 secret;但是,对于联邦 secret,必须将请求发送到联邦 ApiServer,而不是将其发送到特定的 Kubernetes 集群。 例如,您可以使用 kubectl 来进行删除: ```shell kubectl --context=federation-cluster delete secret mysecret ``` {{< note >}} 目前,删除联邦 secret 并不会从底层集群中删除相应的 secret。您必须手动删除底层 secret。我们考虑在将来解决这个问题。 {{< /note >}} {{% /capture %}}