--- title: 联邦 Secret content_template: templates/concept --- {{% capture overview %}} {{< deprecationfilewarning >}} {{< include "federation-deprecation-warning-note.md" >}} {{< /deprecationfilewarning >}} 本指南解释了如何在联邦控制平面中使用 secret。 联邦控制平面中的 Secret(在本指南中称为“联邦 secret”)与提供相同功能的传统 [Kubernetes Secret](/docs/concepts/configuration/secret/) 非常相似。 在联邦控制平面中创建它们可以确保它们跨联邦中的所有集群同步。 {{% /capture %}} {{% capture body %}} ## 先决条件 本指南假设你有一个正在运行的 Kubernetes 集群联邦安装。 如果没有,请访问[联邦管理指南](/docs/admin/federation/),了解如何启动联邦集群(或者让集群管理员为你做这件事)。 其他教程,例如[这里](https://github.com/kelseyhightower/kubernetes-cluster-federation) Kelsey Hightower,也可以帮助您。 你还应该具有一个基本的 [Kubernetes 工作知识](/docs/tutorials/kubernetes-basics/), 特别是 [Secret](/docs/concepts/configuration/secret/)。 ## 创建联邦 Secret 用于联邦 Secret 的 API 与用于传统的 Kubernetes Secret 的 API 100% 兼容。 您可以通过向联邦 apiserver 发送请求来创建一个 Secret。 你可以使用 [kubectl](/docs/user-guide/kubectl/) 来运行: ``` shell kubectl --context=federation-cluster create -f mysecret.yaml ``` `--context=federation-cluster` 参数通知 kubectl 将请求提交给联邦 apiserver,而不是将其发送到 Kubernetes 集群。 创建联邦命名空间后,联邦控制平面将在所有基础 Kubernetes 集群中创建匹配的命名空间。您可以通过检查每个基础集群来验证这一点,例如: ``` shell kubectl --context=gce-asia-east1a get secret mysecret ``` 以上假设您在客户端中为该区域中的集群配置了名为 “gce-asia-east1a” 的上下文。 集群底层中的这些 secret 将与联邦 secret 匹配。 ## 更新联邦 Secret 您可以像更新 Kubernetes secret 一样更新联邦 secret,但是,对于联邦 secret 必须将请求发送到联邦 apiserver, 而不是将其发送到指定的 Kubernetes 集群。联邦控制平面将确保每当更新联邦 secret 时,它都会更新所有基础集群中的相应 secret 以与其匹配。 ## 删除联邦 Secret 你可以删除一个联邦 secret,就像删除一个 Kubernetes secret 一样;但是, 对于联邦 secret,必须将请求发送到联邦 apiserver,而不是发送到指定的 Kubernetes 集群。 例如,您可以通过运行以下命令使用 kubectl 执行此操作: ```shell kubectl --context=federation-cluster delete secret mysecret ``` {{< note >}} 此时,删除联邦 secret 不会从集群底层中删除相应的 secret。你必须手动删除底层 secret。我们打算将来解决这个问题。 {{< /note >}} {{% /capture %}}