Kf 앱은 클러스터의 전용 노드에 배포할 수 있습니다. 앱 pod가 도착하는 노드를 보다 효과적으로 관리해야 할 때 이 기능이 필요합니다. 여러 앱에서 동일한 클러스터를 공유하지만 특정 앱의 전용 노드가 필요하거나 특정 조직(Kf 공간)의 전용 노드가 필요하거나 Windows와 같은 특정 운영체제를 타겟팅하거나 자주 통신하는 두 서비스의 pod를 같은 위치에 배치하는 경우를 예로 들 수 있습니다.
컴퓨팅 격리를 사용 설정할 때 Kf에서는 Kubernetes nodeSelector를 사용합니다. 이 기능을 사용하려면 먼저 앱 pod가 도착할 노드 또는 노드 풀에 라벨을 추가한 후 Kf 공간에 동일한 적격 라벨을 추가합니다. 이 공간에 설치된 모든 앱이 라벨이 일치하는 노드에 도착합니다.
Kf 클러스터의 nodeSelector 구성
기본적으로 컴퓨팅 격리는 사용 중지되어 있습니다. 다음 절차에 따라 라벨 및 nodeSelector를 구성합니다.
애플리케이션 pod가 도착할 노드에 라벨(
distype=ssd
)을 추가합니다.kubectl label nodes nodeid disktype=ssd
Kf 공간에 동일한 라벨을 추가합니다. 그러면 이 공간에 배포된 모든 앱이 적격한 노드에 도착합니다.
kf configure-space set-nodeselector space-name disktype ssd
동일한 명령어를 다시 실행하여 라벨을 여러 개 추가할 수 있습니다.
라벨이 구성되었는지 확인합니다.
kf configure-space get-nodeselector space-name
공간에서 라벨을 삭제합니다.
kf configure-space unset-nodeselector space-name disktype
kf 스택의 nodeSelector 재정의
Kf 앱 배포는 앱을 빌드하고 패키징하는 데 사용되는 Stack(buildpack)을 기반으로 추가로 타겟팅할 수 있습니다. 예를 들어 spaceStacksV2
로 빌드된 애플리케이션을 Linux 커널 4.4.1이 있는 노드에 배치하려는 경우 스택의 nodeSelector
값이 공간에서 구성된 값을 재정의합니다.
스택에서 nodeSelector
를 구성하려면 다음 안내를 따르세요.
Kf 클러스터의
config-defaults
를 수정하고 라벨을 추가합니다.$ kubectl -n kf edit configmaps config-defaults
스택 정의에
nodeSelector
를 추가합니다...... ..... spaceStacksV2: | - name: cflinuxfs3 image: cloudfoundry/cflinuxfs3 nodeSelector: OS_KERNEL: LINUX_4.4.1 ..... .....