Isolamento de computação

Os apps do Kf podem ser implantados em nós dedicados no cluster. Esse recurso é obrigatório quando você quer ter mais controle sobre um nó que recebe um pod do app. Por exemplo, se você estiver compartilhando um mesmo cluster para aplicativos diferentes e quiser nós dedicados para um determinado aplicativo, se quiser nós dedicados para uma determinada organização (espaço do Kf), se quiser definir um sistema operacional específico como o Windows ou colocalizar pods de dois serviços diferentes que se comunicam com frequência.

Para ativar o isolamento de computação, o Kf usa o nodeSelector do Kubernetes. Para usar esse recurso, primeiro adicione rótulos aos nós ou pools de nós que você quer que os pods de aplicativos acessem e adicione os mesmos rótulos qualificados ao espaço do Kf. Todos os apps instalados nesse espaço serão colocados nos nós com rótulos correspondentes.

Como configurar nodeSelector em um cluster do Kf

Por padrão, o isolamento de computação está desativado. Use o procedimento a seguir para configurar rótulos e o nodeSelector.

  1. Adicione um rótulo (distype=ssd) ao nó que você quer que os pods do aplicativo acessem.

    kubectl label nodes nodeid disktype=ssd 
  2. Adicione o mesmo rótulo ao espaço do Kf. Todos os apps implantados nesse espaço são acessados nos nós qualificados.

    kf configure-space set-nodeselector space-name disktype ssd

    Adicione vários rótulos executando o mesmo comando novamente.

  3. Verifique se o rótulo foi configurado.

    kf configure-space get-nodeselector space-name
  4. Exclua o rótulo do espaço.

    kf configure-space unset-nodeselector space-name disktype

Substituir nodeSelector por kf Stacks

A implantação de apps do Kf pode ser ainda mais direcionada com base na pilha (buildpack) que está sendo usada para compilar e empacotar o app. Por exemplo, se você quiser que os aplicativos criados com spaceStacksV2 acessem nós com o kernel do Linux 4.4.1. Os valores de nodeSelector em uma pilha substituem os valores configurados no espaço.

Para configurar o nodeSelector na pilha:

  1. Edite o config-defaults do cluster do Kf e adicione os rótulos.

    $ kubectl -n kf edit configmaps config-defaults
    
  2. Adicione nodeSelector à definição das pilhas.

    .....
    .....
    spaceStacksV2: |
    - name:  cflinuxfs3
            image: cloudfoundry/cflinuxfs3
            nodeSelector:
                  OS_KERNEL: LINUX_4.4.1 
    .....
    .....