安装层次结构控制器

本文档介绍了如何安装和卸载层次结构控制器,它可以扩展常规 Kubernetes 命名空间,以允许分层政策和创建,而无需修改 Anthos Config Management 代码库。

准备工作

您需要一个运行 Google Kubernetes Engine (GKE) 1.15.x 或更高版本的集群,并且已安装 Anthos Config Management。

启用层次结构控制器

按照以下步骤配置 Anthos Config Management,在集群上启用层次结构控制器:

  1. 在 Operator 的配置文件中的 spec.hierarchyController 对象中,将 enabled 的值设置为 true

      # config-management.yaml
    
      apiVersion: configmanagement.gke.io/v1
      kind: ConfigManagement
      metadata:
        name: config-management
      spec:
        # Set to true to enable hierarchical namespaces
        hierarchyController:
          enabled: true
    
        # ...other fields...
    
  2. 应用配置:

      kubectl apply -f config-management.yaml
    

    几项工作负载得到部署,然后层次结构控制器在集群上变得可用。此过程最多可能需要一分钟才能完成。

安装 kubectl 插件

您可以完全通过 Kubernetes 客户端工具(如 kubectl)与层次控制器进行交互。不过,开源 kubectl-hns kubectl 插件大大简化了多项任务。此插件是分层命名空间控制器 (HNC) 的一部分,后者是层次结构控制器的一个组件。

此插件由 OSS 社区分发,目前仅适用于 Linux。要在工作站上安装它,请参阅以下部分。

确定所需的插件版本

每个版本的 Anthos Config Management 都对应于一个 OSS 项目版本,如下表所示。为获得最佳结果,请确保您下载的插件的版本与 Anthos Config Management 的版本匹配。

Anthos Config Management 版本 kubectl-hns版本
1.4.2 0.5.1
1.4.1 0.5.0
Pre-1.4.0

在工作站上安装插件

  1. 将环境变量设置为上表中显示的 kubectl-hns 版本。例如:

     HNC_VERSION=v0.5.0   # Example for Anthos Config Management 1.4.1
    
  2. 选择安装插件的位置。它可以是 PATH 中的任何位置。

     PLUGIN_DIR=~/kubectl-plugins   # Example path
    
  3. 下载插件并使其可以执行。

    curl -L -o ${PLUGIN_DIR}/kubectl-hns \
       https://github.com/kubernetes-sigs/multi-tenancy/releases/download/hnc-${HNC_VERSION}/kubectl-hns
    chmod +x ${PLUGIN_DIR}/kubectl-hns
    

验证安装

  1. 如果层次结构控制器已正确安装,您应该能够在现有命名空间下创建子命名空间,如下所示:

     kubectl hns create sub -n default
    
  2. 如果层次结构控制器正常运行,您应该能够检查生成的层次结构:

     kubectl hns tree default
    

    输出:

     default
      └── sub
    
  3. 清理子命名空间。您不能直接删除子命名空间;您必须从父命名空间中删除子命名空间锚标记:

    kubectl delete subns sub -n default
    # subnamespaceanchor.hnc.x-k8s.io "sub" deleted
    

卸载层次结构控制器

如需卸载层次结构控制器,请执行以下操作:

  1. 在 Operator 的配置文件中的 spec.hierarchyController 对象中,将 enabled 的值设置为 false
  2. Operator 移除 hierarchycontroller.configmanagement.gke.io 终结器后,将卸载层次结构控制器。

如果要完全卸载 Anthos Config Management,请参阅从集群中卸载 Operator

后续步骤