16.5.3. 노드 선택기를 사용하여 구성 Pod 배치
노드 선택기를 사용하면 Pod가 특정 라벨이 있는 노드에만 배치되도록 할 수 있습니다. 클러스터 관리자는 Pod 노드 제약 조건 승인 컨트롤러를 사용하여 Pod /바인딩 권한이 없는 사용자가 노드 선택기를 사용하여 Pod 를 예약하지 못하도록 하는 정책을 설정할 수 있습니다.
마스터 구성 파일의 nodeSelectorLabelBlacklist
필드를 사용하면 특정 역할이 Pod 구성의 nodeSelector
필드에서 지정할 수 있는 라벨을 제어할 수 있습니다. pod/binding 권한 역할이 있는 사용자, 서비스 계정 및 그룹은 노드 선택기를 지정할 수 있습니다. pod/binding 권한이 없는 사용자는 nodeSelector LabelBlacklist에 표시되는 모든 라벨에 대해
를 설정할 수 없습니다.
nodeSelector
예를 들어 OpenShift Container Platform 클러스터는 두 지역에 분산된 데이터 센터 5개로 구성될 수 있습니다. 미국, us-east, us-central, us - west 및 아시아 태평양 지역(APAC), apac-east 및 apac-west 에서. 각 지역에 있는 각 노드는 그에 따라 레이블이 지정됩니다. 예를 들어 region: us-east
입니다.
라벨 할당에 대한 자세한 내용은 노드의 라벨 업데이트를 참조하십시오.
클러스터 관리자는 애플리케이션 개발자가 지리적 위치에 가장 가까운 노드에만 포드를 배포해야 하는 인프라를 생성할 수 있습니다. 미국 데이터 센터를 슈퍼 지역으로 그룹화하는 노드 선택기를 생성할 수 있습니다. us 및 APAC 데이터 센터를
로 그룹화할 수 있습니다.
superregion:
apac
데이터 센터당 리소스를 로드하도록 원하는 지역을
마스터 구성의 nodeSelectorLabelBlacklist
섹션에 추가할 수 있습니다. 그런 다음, 미국 내에 있는 개발자가 포드를 생성할 때마다 수퍼 영역인 us
레이블이 있는 지역 중 하나에 있는 노드에 배포됩니다. 개발자가 포드의 특정 리전을 대상으로 시도하는 경우(예 : region: us-east
) 오류가 발생합니다. 포드에서 노드 선택기 없이 다시 시도하면 superregion: us가 프로젝트 수준 노드 선택기로 설정되어 있고 region : us
배포할 수 있습니다 -east의 레이블이 지정된 노드에 superregion
: us라는 레이블이 지정되므로 여전히 대상 리전에.
원하는 라벨(자세한 내용은 노드의 라벨 업데이트 참조 ) 및 환경에 설정된 노드 선택기 가 있는지 확인합니다.
예를 들어 Pod 구성에 원하는 라벨을 나타내는
nodeSelector
값이 포함되어 있는지 확인합니다.apiVersion: v1 kind: Pod spec: nodeSelector: <key>: <value> ...
마스터 구성 파일 /etc/origin/master/master-config.yaml 을 수정하여 pod 배치를 거부할 노드 호스트에 할당된 라벨을 사용하여
nodeSelectorLabelBlacklist
를admissionConfig
섹션에 추가합니다.... admissionConfig: pluginConfig: PodNodeConstraints: configuration: apiversion: v1 kind: PodNodeConstraintsConfig nodeSelectorLabelBlacklist: - kubernetes.io/hostname - <label> ...
변경 사항을 적용하려면 OpenShift Container Platform을 다시 시작하십시오.
# master-restart api # master-restart controllers