Isolamento de computação

Os aplicativos Kf podem ser implantados em nós dedicados no cluster. Esse recurso é obrigatório se você tiver circunstâncias em que queira ter mais controle sobre um nó que recebe um pod de aplicativo. Por exemplo, se você estiver compartilhando um mesmo cluster para aplicativos diferentes, mas quiser que nós dedicados para um determinado aplicativo, se quiser nós dedicados para uma determinada organização (Kf Space), segmentem um sistema operacional específico como o Windows ou colocalizem 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 Kf Space. Todos os aplicativos instalados nesse Space 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 fica 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 Kf Space. Todos os aplicativos implantados nesse Space 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 está configurado.

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

    kf configure-space unset-nodeselector space-name disktype
    

Modificar nodeSelector para kf Stacks

A implantação de aplicativos Kf pode ser ainda mais fundamentada com base no Stack (buildpack) que está sendo usado para compilar e empacotar o aplicativo. Por exemplo, se você quiser que os aplicativos criados com spaceStacksV2 acessem nós com o kernel do Linux 4.4.1. Os valores nodeSelector em um Stack substituirão os valores configurados no Space.

Para configurar o nodeSelector no Stack.

  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
    .....
    .....