Ativar o 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 o mesmo cluster para apps diferentes, mas quiser nós dedicados para um app específico.
  • Se você quiser nós dedicados a uma determinada organização (Kf Space).
  • Se você quiser segmentar um sistema operacional específico, como o Windows.
  • Se você quiser colocar os 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.

Configurar o 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

Substituir 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 em uma 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 
    .....
    .....