联邦命名空间

已过时

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

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

本指南介绍如何在联邦控制平面中使用命名空间。

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

准备开始

  • 本指南假设您已安装有一个正在运行的 Kubernetes 集群联邦。如果没有,那么请转到 联邦管理指南,了解如何启动联邦集群(或者让集群管理员为您执行此操作)。 其他教程,例如 Kelsey Hightower 的联邦 Kubernetes 教程, 也可能帮助您创建联邦 Kubernetes 集群。

  • 您还需要具备基本的 Kubernetes 工作知识, 特别是命名空间

创建联邦命名空间

联邦命名空间的 API 与传统 Kubernetes 命名空间的 API 100% 兼容。您可以通过向联邦身份验证程序发送请求来创建命名空间。

您可以通过运行以下命令使用 kubectl 执行此操作:

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

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

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

  1. kubectl --context=gce-asia-east1a get namespaces myns

以上假设您在客户端中为该区域中的集群配置了名为 “gce-asia-east1a” 的上下文。 基础命名空间的名称和规范将与您在上面创建的联邦命名空间的名称和规范相匹配。

更新联邦命名空间

您可以像更新 Kubernetes 命名空间一样更新联邦命名空间,只需将请求发送到联邦身份验证程序,而不是将其发送到指定的 Kubernetes 集群。 联邦控制平面将确保每当更新联邦命名空间时,它都会更新所有基础集群中的相应命名空间以与其匹配。

删除联邦命名空间

你可以删除联邦命名空间,就像删除 Kubernetes 命名空间一样,只需将请求发送到联邦身份验证器,而不是发送到指定的 Kubernetes 群集。

例如,您可以通过运行以下命令使用 kubectl 执行此操作:

  1. kubectl --context=federation-cluster delete ns myns

与在 Kubernetes 中一样,删除联邦命名空间将从联邦控制平面中删除该命名空间中的所有资源。

注意:

此时,删除联邦命名空间,不会从底层集群中删除相应的命名空间或这些命名空间中的资源。用户必须手动删除它们。我们打算将来解决这个问题。