联邦 Secret

已过时

强烈建议不要使用联邦 v1 版本联邦 v1 版本从未达到 GA 状态,且不再处于积极开发阶段。文档仅作为历史参考。

有关更多信息,请参阅预期的替代品 Kubernetes 联邦 v2 版本

本指南解释了如何在联邦控制平面中使用 secret。

联邦控制平面中的 Secret(在本指南中称为“联邦 secret”)与提供相同功能的传统 Kubernetes Secret 非常相似。 在联邦控制平面中创建它们可以确保它们跨联邦中的所有集群同步。

先决条件

本指南假设你有一个正在运行的 Kubernetes 集群联邦安装。 如果没有,请访问联邦管理指南,了解如何启动联邦集群(或者让集群管理员为你做这件事)。 其他教程,例如这里 Kelsey Hightower,也可以帮助您。

你还应该具有一个基本的 Kubernetes 工作知识, 特别是 Secret

创建联邦 Secret

用于联邦 Secret 的 API 与用于传统的 Kubernetes Secret 的 API 100% 兼容。 您可以通过向联邦 apiserver 发送请求来创建一个 Secret。

你可以使用 kubectl 来运行:

  1. kubectl --context=federation-cluster create -f mysecret.yaml

--context=federation-cluster 参数通知 kubectl 将请求提交给联邦 apiserver,而不是将其发送到 Kubernetes 集群。

创建联邦命名空间后,联邦控制平面将在所有基础 Kubernetes 集群中创建匹配的命名空间。您可以通过检查每个基础集群来验证这一点,例如:

  1. 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 执行此操作:

  1. kubectl --context=federation-cluster delete secret mysecret

注意:

此时,删除联邦 secret 不会从集群底层中删除相应的 secret。你必须手动删除底层 secret。我们打算将来解决这个问题。