Como instalar o controlador de hierarquia

Neste documento, mostramos como instalar e desinstalar o controlador de hierarquia, que estende os namespaces normais do Kubernetes para permitir a criação de políticas hierárquicas sem modificar o repositório do Anthos Config Management.

Antes de começar

É preciso um cluster que execute o Google Kubernetes Engine (GKE) versão 1.15.x ou posterior com o Anthos Config Management já instalado.

Como ativar o controlador de hierarquia

Siga estas etapas para configurar o Anthos Config Management e ativar o controlador de hierarquia no cluster:

  1. No arquivo de configuração do operador, no objeto spec.hierarchyController, defina o valor de enabled como 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. Aplique a configuração:

      kubectl apply -f config-management.yaml
    

    Várias cargas de trabalho são implantadas e o controlador de hierarquia se torna utilizável no cluster. Isso pode levar até um minuto para ser concluído.

Como instalar o plug-in kubectl

É possível interagir com o controlador de hierarquia exclusivamente por meio de ferramentas de cliente do Kubernetes, como kubectl. No entanto, o código aberto kubectl-hns Plug-in do kubectl simplifica várias tarefas. Esse plug-in faz parte do controlador de namespace hierárquico (HNC, na sigla em inglês), que é um componente do controlador de hierarquia.

Esse plug-in é distribuído pela comunidade do OSS e atualmente está disponível apenas para Linux. Para instalá-lo na estação de trabalho, consulte as seções a seguir.

Como determinar a versão necessária do plug-in

Cada versão do Anthos Config Management corresponde a uma versão do projeto OSS, conforme mostrado na tabela a seguir. Para melhores resultados, verifique se a versão do plug-in do qual você faz o download corresponde à versão do Anthos Config Management.

Versão do Anthos Config Management Versão do kubectl-hns
1.4.1 0.5.0
Pre-1.4.0 n/a

Como instalar o plug-in na estação de trabalho

  1. Configure uma variável de ambiente para a versão kubectl-hns mostrada na tabela anterior. Exemplo:

     HNC_VERSION=0.5.0   # Example for Anthos Config Management 1.4.1
    
  2. Selecione o local para instalar o plug-in. Ele pode estar em qualquer lugar no caminho.

     PLUGIN_DIR=~/kubectl-plugins   # Example path
    
  3. Faça o download do plug-in e torne-o executável.

    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
    

Como verificar a instalação

  1. Se o controlador de hierarquia estiver instalado corretamente, você poderá criar subnamespaces abaixo de um namespace existente, da seguinte maneira:

     kubectl hns create sub -n default
    
  2. Se o controlador de hierarquia estiver funcionando corretamente, você poderá inspecionar a hierarquia resultante:

     kubectl hns tree default
    

    Saída:

     default
      └── sub
    
  3. Limpe o subnamespace. Subnamespaces não podem ser excluídos diretamente; Em vez disso, você precisa excluir a âncora do subnamespace do namespace pai:

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

Como desinstalar o controlador de hierarquia

Para desinstalar o controlador de hierarquia:

  1. No arquivo de configuração do operador, no objeto spec.hierarchyController, defina o valor de enabled como false.
  2. Após o operador remover o finalizador hierarchycontroller.configmanagement.gke.io, o controlador de hierarquia é desinstalado.

Se você quiser desinstalar totalmente o Anthos Config Management, consulte Como desinstalar o Operator de um cluster.

A seguir