任务

Edit This Page

联邦命名空间

Note: Federation V1, 是当前的 Kubernetes 联邦 API, 它“原样”重用 Kubernetes API 资源, 其许多特性目前被认为是 alpha。 没有明确的途径将 API 发展成 GA; 然而, 除了 Kubernetes API 之外, 还有一个 Federation V2 正在努力实现专用的联邦 API。详细信息可在 sig-multicluster 社区页面 获得。

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

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

准备开始

创建联邦命名空间

联邦命名空间的 API 与传统 Kubernetes 命名空间的 API 100%兼容。您可以通过给联邦 API 服务器发送请求来创建一个命名空间。

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

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

参数 --context=federation-cluster 用于告知 kubectl 要向联邦 API 服务器提交请求而不是 Kubernetes 集群。

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

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

以上假设您在客户机中为该区域的集群配置了一个名为 ‘gce-asia-east1a’ 的上下文。基础命名空间的名称和 spec 将与您在上面创建的联合命名空间的名称和 spec 相匹配。

更新联邦命名空间

您可以像更新 Kubernetes 命名空间一样更新联邦命名空间,只需要将请求发送给联邦的 API 服务器,而不是发送给特定的 Kubernetes 集群。 联邦控制平面将确保每当更新联邦命名空间时,它都会更新所有基础集群中的相应命名空间以与其匹配。

删除联邦命名空间

您可以删除联邦命名空间就像删除 Kubernetes 命名空间一样,只需要将请求发送给联邦的 API 服务器,而不是发送给特定的 Kubernetes 集群。

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

kubectl --context=federation-cluster delete ns myns

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

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

反馈