노드 풀 정보
노드 풀은 클러스터 내에서 구성이 모두 동일한 노드 그룹입니다.
일반적으로 리소스 요구사항이 서로 다른 포드가 있는 경우 별도의 노드 풀을 정의합니다.
예를 들어 apigee-cassandra
포드에는 영구 스토리지가 필요하지만 다른 Apigee Hybrid 포드에는 필요하지 않습니다.
이 주제에서는 하이브리드 설치를 위한 전용 노드 풀을 구성하는 방법을 설명합니다.
기본 nodeSelector 사용
권장사항은 Cassandra 포드와 다른 모든 런타임 포드를 위한 2개의 전용 노드 풀을 설정하는 것입니다. 기본 nodeSelector 구성을 사용하면 설치 프로그램은 Cassandra 포드를 apigee-data
이라는 스테이트풀(Stateful) 노드 풀에 할당하고 다른 모든 포드는 apigee-runtime
이라는 스테이트리스(Stateless) 노드 풀에 할당합니다. 이러한 이름으로 노드 풀을 만들기만 하면 Apigee 하이브리드가 포드 예약 세부정보를 자동으로 처리합니다.
기본 노드 풀 이름 | 설명 |
---|---|
apigee-data |
스테이트풀(Stateful) 노드 풀 |
apigee-runtime |
스테이트리스(Stateless) 노드 풀. |
다음은 기본 nodeSelector
구성입니다. apigeeData
속성은 Cassandra 포드의 노드 풀을 지정합니다. apigeeRuntime
은 다른 모든 포드의 노드 풀을 지정합니다. 이 기본 설정을 이 주제의 뒷부분에서 설명하는 것처럼 재정의 파일에서 재정의할 수 있습니다.
nodeSelector: requiredForScheduling: true apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
포드가 올바른 노드에 예약되도록 하려면 이름이 apigee-data
및 apigee-runtime
인 2개의 노드 풀을 만듭니다.
requiredForScheduling 속성
nodeSelector
구성 섹션에는 requiredForScheduling
라는 속성이 있습니다.
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
false
로 설정하면 노드 풀이 필수 이름으로 정의되었는지 여부에 따라 기본 포드가 예약됩니다. 즉, 노드 풀 만들기를 잊어버리거나 실수로 apigee-runtime
또는 apigee-data
가 아닌 노드 풀 이름을 지정하면 하이브리드 런타임 설치가 성공합니다. Kubernetes는 포드를 실행할 위치를 결정합니다.
requiredForScheduling
을 true
(기본값)로 설정하면 구성된 nodeSelector
키 및 값과 일치하는 노드 풀이 없는 경우 설치에 실패합니다.
커스텀 노드 풀 이름 사용
기본 이름으로 노드 풀을 사용하지 않으려면 커스텀 이름으로 노드 풀을 만들고 nodeSelector
스탠자에 커스텀 이름을 지정할 수 있습니다. 예를 들어 다음 구성은 my-cassandra-pool
이라는 풀에 Cassandra 포드를 할당하고 다른 모든 포드를 my-runtime-pool
이라는 풀에 할당합니다.
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "my-runtime-pool" apigeeData: key: "cloud.google.com/gke-nodepool" value: "my-cassandra-pool"
GKE에서 특정 구성요소의 노드 풀 재정의
개별 구성요소 수준에서 노드 풀 구성을 재정의할 수도 있습니다. 예를 들어 다음 구성은 값이 apigee-custom
인 노드 풀을 runtime
구성요소에 할당합니다.
runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-custom
다음 구성요소 중 하나에 커스텀 노드 풀을 지정할 수 있습니다.
istio
mart
synchronizer
runtime
cassandra
udca
logger
GKE 노드 풀 구성
GKE에서 노드 풀은 풀을 만들 때 지정한 고유한 이름을 가져야 하며, GKE는 각 노드에 다음과 같은 라벨을 자동으로 지정합니다.
cloud.google.com/gke-nodepool=THE_NODE_POOL_NAME
apigee-data
및 apigee-runtime
이라는 노드 풀을 만들면 추가 구성이 필요하지 않습니다. 커스텀 노드 이름을 사용하려면 커스텀 노드 풀 이름 사용을 참조하세요.
노드에 수동으로 라벨 지정
Apigee Hybrid는 현재 Anthos 1.1.1에서만 지원됩니다. 이 버전의 Anthos는 노드 풀 기능을 지원하지 않습니다. 따라서 아래에 설명된 대로 워커 노드에 수동으로 라벨을 지정해야 합니다. 하이브리드 클러스터가 실행되면 다음 단계를 수행합니다.
- 다음 명령어를 실행하여 클러스터의 워커 노드 목록을 가져옵니다.
kubectl -n APIGEE_NAMESPACE get nodes
결과 예시:
NAME STATUS ROLES AGE VERSION apigee-092d639a-4hqt Ready <none> 7d v1.14.6-gke.2 apigee-092d639a-ffd0 Ready <none> 7d v1.14.6-gke.2 apigee-109b55fc-5tjf Ready <none> 7d v1.14.6-gke.2 apigee-c2a9203a-8h27 Ready <none> 7d v1.14.6-gke.2 apigee-c70aedae-t366 Ready <none> 7d v1.14.6-gke.2 apigee-d349e89b-hv2b Ready <none> 7d v1.14.6-gke.2
- 런타임 노드와 데이터 노드를 구분하도록 각 노드에 라벨을 지정합니다.
다음 명령어를 사용하여 노드에 라벨을 지정합니다.
kubectl label node NODE_NAME KEY=VALUE
예:
$ kubectl label node apigee-092d639a-4hqt apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-092d639a-ffd0 apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-109b55fc-5tjf apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-c2a9203a-8h27 apigee.com/apigee-nodepool=apigee-data $ kubectl label node apigee-c70aedae-t366 apigee.com/apigee-nodepool=apigee-data $ kubectl label node apigee-d349e89b-hv2b apigee.com/apigee-nodepool=apigee-data
Anthos GKE에서 특정 구성요소의 노드 풀 재정의
Anthos GKE 설치의 개별 구성요소 수준에서 노드 풀 구성을 재정의할 수도 있습니다. 예를 들어 다음 구성은 값이 apigee-custom
인 노드 풀을 runtime
구성요소에 할당합니다.
runtime: nodeSelector: key: apigee.com/apigee-nodepool value: apigee-custom
다음 구성요소 중 하나에 커스텀 노드 풀을 지정할 수 있습니다.
istio
mart
synchronizer
runtime
cassandra
udca
logger