Habilitar el aislamiento de computación

Las aplicaciones de Kf se pueden implementar en nodos dedicados del clúster. Esta función es necesaria si quieres tener más control sobre un nodo en el que se coloca un pod de aplicación. Por ejemplo:

  • Si compartes el mismo clúster para diferentes aplicaciones, pero quieres nodos dedicados para una aplicación concreta.
  • Si quieres nodos dedicados para una organización determinada (espacio de Kf).
  • Si quieres segmentar por un sistema operativo concreto, como Windows.
  • Si quieres colocar conjuntamente pods de dos servicios diferentes que se comuniquen con frecuencia.

Para habilitar el aislamiento de computación, Kf usa nodeSelector de Kubernetes. Para usar esta función, primero añada etiquetas a los nodos o grupos de nodos en los que quiera que se coloquen sus pods de aplicaciones y, a continuación, añada las mismas etiquetas de calificación al espacio de Kf. Todas las aplicaciones instaladas en este espacio se colocarán en los nodos con etiquetas coincidentes.

Configurar nodeSelector en un clúster de Kf

De forma predeterminada, el aislamiento de computación está inhabilitado. Sigue este procedimiento para configurar etiquetas y nodeSelector.

  1. Añade una etiqueta (distype=ssd) al nodo en el que quieras que se coloquen los pods de tu aplicación.

    kubectl label nodes nodeid disktype=ssd
  2. Añade la misma etiqueta en el espacio de Kf. Todas las aplicaciones implementadas en este espacio se colocarán en los nodos aptos.

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

    Puedes añadir varias etiquetas volviendo a ejecutar el mismo comando.

  3. Comprueba que la etiqueta esté configurada.

    kf configure-space get-nodeselector space-name
  4. Elimina la etiqueta del espacio.

    kf configure-space unset-nodeselector space-name disktype

Anular nodeSelector para pilas de Kf

La implementación de aplicaciones de Kf se puede orientar aún más en función de la pila (paquete de compilación) que se utilice para compilar y empaquetar la aplicación. Por ejemplo, si quieres que tus aplicaciones compiladas con spaceStacksV2 se implementen en nodos con el kernel de Linux 4.4.1, Los valores de nodeSelector de una pila anulan los valores configurados en el espacio.

Para configurar nodeSelector en una pila, sigue estos pasos:

  1. Edita el config-defaults de tu clúster de Kf y añade las etiquetas.

    $ kubectl -n kf edit configmaps config-defaults
    
  2. Añade nodeSelector a la definición de pilas.

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