2.7. OpenShift 리소스 사용자 정의
AMQ Streams 배포에서는 Deployment,Pod, Service 리소스와 같은 OpenShift 리소스를 생성합니다. 이러한 리소스는 AMQ Streams Operator에서 관리합니다. 특정 OpenShift 리소스 관리를 담당하는 Operator만 해당 리소스를 변경할 수 있습니다. Operator에서 관리하는 OpenShift 리소스를 수동으로 변경하려고 하면 Operator에서 변경 사항을 되돌립니다.
Operator 관리 OpenShift 리소스 변경은 다음과 같은 특정 작업을 수행하려는 경우 유용할 수 있습니다.
-
Istio 또는 기타 서비스에서
Pod를 처리하는 방법을 제어하는 사용자 정의 라벨 또는 주석 추가 -
클러스터에서
로드 밸런서-type 서비스를 생성하는 방법 관리
AMQ Streams 사용자 정의 리소스의 template 속성을 사용하여 변경할 수 있습니다. template 속성은 다음 리소스에서 지원됩니다. API 참조는 사용자 정의 필드에 대한 자세한 정보를 제공합니다.
Kafka.spec.kafka-
참조 4.2.33절. “
KafkaClusterTemplate스키마 참조” Kafka.spec.zookeeper-
참조 4.2.43절. “
ZookeeperClusterTemplate스키마 참조” Kafka.spec.entityOperator-
참조 4.2.48절. “
EntityOperatorTemplate스키마 참조” Kafka.spec.kafkaExporter-
참조 4.2.60절. “
KafkaExporterTemplate스키마 참조” Kafka.spec.cruiseControl-
참조 4.2.52절. “
CruiseControlTemplate스키마 참조” KafkaConnect.spec-
참조 4.2.76절. “
KafkaConnectTemplate스키마 참조” KafkaMirrorMaker.spec-
참조 4.2.116절. “
KafkaMirrorMakerTemplate스키마 참조” KafkaMirrorMaker2.spec-
참조 4.2.76절. “
KafkaConnectTemplate스키마 참조” KafkaBridge.spec-
참조 4.2.125절. “
KafkaBridgeTemplate스키마 참조” KafkaUser.spec-
참조 4.2.110절. “
KafkaUserTemplate스키마 참조”
다음 예제에서 template 속성은 Kafka 브로커의 Pod에서 라벨을 수정하는 데 사용됩니다.
템플릿 사용자 지정 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
labels:
app: my-cluster
spec:
kafka:
# ...
template:
pod:
metadata:
labels:
mylabel: myvalue
# ...
2.7.1. 이미지 가져오기 정책 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams를 사용하면 Cluster Operator가 배포한 모든 Pod에서 컨테이너의 이미지 가져오기 정책을 사용자 지정할 수 있습니다. 이미지 가져오기 정책은 Cluster Operator 배포에서 환경 변수 STRIMZI_IMAGE_PULL_POLICY 를 사용하여 구성됩니다. STRIMZI_IMAGE_PULL_POLICY 환경 변수는 세 가지 다른 값으로 설정할 수 있습니다.
Always- 컨테이너 이미지는 포드를 시작하거나 다시 시작할 때마다 레지스트리에서 컨테이너 이미지를 가져옵니다.
IfNotPresent- 컨테이너 이미지는 이전에 가져오지 않은 경우에만 레지스트리에서 가져옵니다.
Never- 컨테이너 이미지는 레지스트리에서 가져오지 않습니다.
현재 이미지 풀 정책은 한 번에 모든 Kafka, Kafka Connect 및 Kafka MirrorMaker 클러스터에 대해서만 사용자 지정할 수 있습니다. 정책을 변경하면 모든 Kafka, Kafka Connect 및 Kafka MirrorMaker 클러스터의 롤링 업데이트가 생성됩니다.
2.7.2. 종료 유예 기간 적용 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 클러스터를 종료할 충분한 시간을 제공하기 위해 종료 유예 기간을 적용합니다.
terminationGracePeriodSeconds 속성을 사용하여 시간을 지정합니다. Kafka 사용자 정의 리소스의 template.pod 구성에 속성을 추가합니다.
추가하는 시간은 Kafka 클러스터의 크기에 따라 달라집니다. 종료 유예 기간의 OpenShift 기본값은 30초입니다. 클러스터가 완전히 종료되지 않는 경우 종료 유예 기간을 늘릴 수 있습니다.
Pod를 다시 시작할 때마다 종료 유예 기간이 적용됩니다. 기간은 OpenShift가 포드에서 실행 중인 프로세스에 용어 (기화) 신호를 보낼 때 시작됩니다. 기간은 종료 Pod의 프로세스를 중지하기 전에 다른 Pod로 전송하는 데 필요한 시간을 반영해야 합니다. 기간이 종료되면 종료 신호는 Pod에서 계속 실행 중인 모든 프로세스를 중지합니다.
다음 예제에서는 Kafka 사용자 정의 리소스에 120초의 종료 유예 기간을 추가합니다. 다른 Kafka 구성 요소의 사용자 정의 리소스에 구성을 지정할 수도 있습니다.
종료 유예 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
template:
pod:
terminationGracePeriodSeconds: 120
# ...
# ...