컴퓨팅 격리

Kf 앱은 클러스터의 전용 노드에 배포할 수 있습니다. 앱 pod가 도착하는 노드를 보다 효과적으로 관리해야 할 때 이 기능이 필요합니다. 여러 앱에서 동일한 클러스터를 공유하지만 특정 앱의 전용 노드가 필요하거나 특정 조직(Kf 공간)의 전용 노드가 필요하거나 Windows와 같은 특정 운영체제를 타겟팅하거나 자주 통신하는 두 서비스의 pod를 같은 위치에 배치하는 경우를 예로 들 수 있습니다.

컴퓨팅 격리를 사용 설정할 때 Kf에서는 Kubernetes nodeSelector를 사용합니다. 이 기능을 사용하려면 먼저 앱 pod가 도착할 노드 또는 노드 풀에 라벨을 추가한 후 Kf 공간에 동일한 적격 라벨을 추가합니다. 이 공간에 설치된 모든 앱이 라벨이 일치하는 노드에 도착합니다.

Kf 클러스터의 nodeSelector 구성

기본적으로 컴퓨팅 격리는 사용 중지되어 있습니다. 다음 절차에 따라 라벨 및 nodeSelector를 구성합니다.

  1. 애플리케이션 pod가 도착할 노드에 라벨(distype=ssd)을 추가합니다.

    kubectl label nodes nodeid disktype=ssd 
  2. Kf 공간에 동일한 라벨을 추가합니다. 그러면 이 공간에 배포된 모든 앱이 적격한 노드에 도착합니다.

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

    동일한 명령어를 다시 실행하여 라벨을 여러 개 추가할 수 있습니다.

  3. 라벨이 구성되었는지 확인합니다.

    kf configure-space get-nodeselector space-name
  4. 공간에서 라벨을 삭제합니다.

    kf configure-space unset-nodeselector space-name disktype

kf 스택의 nodeSelector 재정의

Kf 앱 배포는 앱을 빌드하고 패키징하는 데 사용되는 Stack(buildpack)을 기반으로 추가로 타겟팅할 수 있습니다. 예를 들어 spaceStacksV2로 빌드된 애플리케이션을 Linux 커널 4.4.1이 있는 노드에 배치하려는 경우 스택의 nodeSelector 값이 공간에서 구성된 값을 재정의합니다.

스택에서 nodeSelector를 구성하려면 다음 안내를 따르세요.

  1. Kf 클러스터의 config-defaults를 수정하고 라벨을 추가합니다.

    $ kubectl -n kf edit configmaps config-defaults
    
  2. 스택 정의에 nodeSelector를 추가합니다.

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