9.13. Pod 예약 구성
동일한 OpenShift 노드에서 예약된 애플리케이션 간 리소스 충돌로 인한 성능 저하를 방지하기 위해 Kafka Pod를 중요한 워크로드와 별도로 예약할 수 있습니다. 이를 위해 특정 노드를 선택하거나 Kafka 전용 노드 세트를 약화할 수 있습니다.
9.13.1. 유사성, 허용 오차 및 토폴로지 분배 제약 조건 지정 링크 복사링크가 클립보드에 복사되었습니다!
유사성, 허용 오차 및 토폴로지 분배 제약 조건을 사용하여 노드에 kafka 리소스의 Pod를 예약합니다. 유사성, 허용 오차 및 토폴로지 분배 제약 조건은 다음 리소스의 유사성,허용 오차 및 topologySpreadConstraint 속성을 사용하여 구성됩니다.
-
Kafka.spec.kafka.template.pod -
Kafka.spec.zookeeper.template.pod -
Kafka.spec.entityOperator.template.pod -
KafkaConnect.spec.template.pod -
KafkaBridge.spec.template.pod -
KafkaMirrorMaker.spec.template.pod -
KafkaMirrorMaker2.spec.template.pod
선호도,허용 오차 및 topologySpreadConstraint 속성 형식의 형식은 OpenShift 사양을 따릅니다. 선호도 구성에는 다양한 유형의 선호도가 포함될 수 있습니다.
- Pod 유사성 및 유사성 방지
- 노드 유사성
9.13.1.1. Pod 유사성 방지를 사용하여 중요한 애플리케이션 공유 노드를 방지합니다. 링크 복사링크가 클립보드에 복사되었습니다!
Pod 유사성 방지를 사용하여 중요한 애플리케이션이 동일한 디스크에 예약되지 않도록 합니다. Kafka 클러스터를 실행할 때는 Pod 유사성 방지를 사용하여 Kafka 브로커가 데이터베이스와 같은 다른 워크로드와 노드를 공유하지 않도록 하는 것이 좋습니다.
9.13.1.2. 노드 유사성을 사용하여 특정 노드에 워크로드 예약 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift 클러스터는 일반적으로 다양한 유형의 작업자 노드로 구성됩니다. 일부는 CPU가 많은 워크로드, 일부 메모리에 최적화되어 있고 다른 일부는 스토리지(빠른 로컬 SSD) 또는 네트워크에 최적화될 수 있습니다. 다른 노드를 사용하면 비용과 성능을 모두 최적화하는 데 도움이 됩니다. 최상의 성능을 얻으려면 AMQ Streams 구성 요소가 올바른 노드를 사용하도록 예약할 수 있어야 합니다.
OpenShift는 노드 유사성을 사용하여 특정 노드에 워크로드를 예약합니다. 노드 유사성을 사용하면 Pod를 예약할 노드에 대한 스케줄링 제약 조건을 생성할 수 있습니다. 제약 조건은 라벨 선택기로 지정됩니다. 올바른 노드를 선택하려면 beta.kubernetes.io/instance-type 또는 사용자 정의 레이블과 같은 기본 제공 노드 레이블을 사용하여 라벨을 지정할 수 있습니다.
9.13.1.3. 전용 노드에 노드 유사성 및 허용 오차 사용 링크 복사링크가 클립보드에 복사되었습니다!
테인트를 사용하여 전용 노드를 생성한 다음 노드 유사성 및 허용 오차를 구성하여 전용 노드에서 Kafka Pod를 예약합니다.
클러스터 관리자는 선택한 OpenShift 노드를 테인트로 표시할 수 있습니다. 테인트가 있는 노드는 일반 스케줄링에서 제외되며 일반 Pod는 해당 노드에서 실행되도록 예약되지 않습니다. 노드에 테인트를 설정할 수 있는 서비스만 예약할 수 있습니다. 이러한 노드에서 실행되는 유일한 다른 서비스는 로그 수집기 또는 소프트웨어 정의 네트워크와 같은 시스템 서비스입니다.
전용 노드에서 Kafka 및 해당 구성 요소를 실행하면 많은 이점이 있을 수 있습니다. 동일한 노드에서 실행 중인 다른 애플리케이션은 없으며 Kafka에 필요한 리소스를 방해하거나 사용할 수 있습니다. 이로 인해 성능 및 안정성이 향상될 수 있습니다.
9.13.2. 각 Kafka 브로커를 다른 작업자 노드에 예약하도록 Pod 유사성 방지 구성 링크 복사링크가 클립보드에 복사되었습니다!
많은 Kafka 브로커 또는 Zoo Cryostat 노드는 동일한 OpenShift 작업자 노드에서 실행할 수 있습니다. 작업자 노드가 실패하면 모두 동시에 사용할 수 없게 됩니다. 안정성을 개선하기 위해 podAntiAffinity 구성을 사용하여 다른 OpenShift 작업자 노드에서 각 Kafka 브로커 또는 Zoo Cryostat 노드를 예약할 수 있습니다.
사전 요구 사항
- OpenShift 클러스터
- 실행중인 Cluster Operator
프로세스
클러스터 배포를 지정하는 리소스에서
affinity속성을 편집합니다. Kafka 브로커 또는 Zoo Cryostat 노드에서 작업자 노드를 공유하지 않도록 하려면strimzi.io/name레이블을 사용합니다.topologyKey를kubernetes.io/hostname으로 설정하여 선택한 Pod가 동일한 호스트 이름이 있는 노드에서 예약되지 않도록 지정합니다. 이렇게 하면 단일 Kafka 브로커 및 단일 Zoo Cryostat 노드에서 동일한 작업자 노드를 공유할 수 있습니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
CLUSTER-NAME은 Kafka 사용자 정의 리소스의 이름입니다.Kafka 브로커와 Zoo Cryostat 노드가 동일한 작업자 노드를 공유하지 않도록 하려면
strimzi.io/cluster레이블을 사용합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
CLUSTER-NAME은 Kafka 사용자 정의 리소스의 이름입니다.리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.13.3. Kafka 구성 요소에서 Pod 유사성 방지 구성 링크 복사링크가 클립보드에 복사되었습니다!
Pod 유사성 방지 구성은 Kafka 브로커의 안정성 및 성능에 도움이 됩니다. podAntiAffinity 를 사용하면 OpenShift에서 다른 워크로드와 동일한 노드에 Kafka 브로커를 예약하지 않습니다. 일반적으로 Kafka가 다른 네트워크 또는 스토리지 집약적인 애플리케이션과 동일한 작업자 노드에서 실행되지 않도록 해야 합니다(예: 데이터베이스, 스토리지 또는 기타 메시징 플랫폼).
사전 요구 사항
- OpenShift 클러스터
- 실행중인 Cluster Operator
프로세스
클러스터 배포를 지정하는 리소스에서
affinity속성을 편집합니다. 라벨을 사용하여 동일한 노드에서 예약해서는 안 되는 Pod를 지정합니다. 선택한 Pod를 호스트 이름이 동일한 노드에서 예약하지 않도록topologyKey를kubernetes.io/hostname으로 설정해야 합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
이 작업은
oc apply를 사용하여 수행할 수 있습니다.oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.13.4. Kafka 구성 요소에서 노드 유사성 구성 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- OpenShift 클러스터
- 실행중인 Cluster Operator
프로세스
AMQ Streams 구성 요소를 예약해야 하는 노드에 레이블을 지정합니다.
이 작업은
oc label:을 사용하여 수행할 수 있습니다.oc label node NAME-OF-NODE node-type=fast-network
oc label node NAME-OF-NODE node-type=fast-networkCopy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 일부 기존 레이블을 재사용할 수 있습니다.
클러스터 배포를 지정하는 리소스에서
affinity속성을 편집합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
이 작업은
oc apply를 사용하여 수행할 수 있습니다.oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.13.5. 전용 노드 설정 및 Pod 예약 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- OpenShift 클러스터
- 실행중인 Cluster Operator
프로세스
- 전용으로 사용할 노드를 선택합니다.
- 이러한 노드에 예약된 워크로드가 없는지 확인합니다.
선택한 노드에서 테인트를 설정합니다.
이 작업은
oc adm taint를 사용하여 수행할 수 있습니다.oc adm taint node NAME-OF-NODE dedicated=Kafka:NoSchedule
oc adm taint node NAME-OF-NODE dedicated=Kafka:NoScheduleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 또한 선택한 노드에 레이블을 추가합니다.
이 작업은
oc label:을 사용하여 수행할 수 있습니다.oc label node NAME-OF-NODE dedicated=Kafka
oc label node NAME-OF-NODE dedicated=KafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 배포를 지정하는 리소스에서
유사성및허용 오차속성을 편집합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
이 작업은
oc apply를 사용하여 수행할 수 있습니다.oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow