4장. 사용자 정의 리소스 API 참조


4.1. 공통 설정 속성

공통 구성 속성을 사용하여 AMQ Streams 사용자 정의 리소스를 구성합니다. 해당 리소스에 대해 지원되는 다른 구성과 같이 사용자 정의 리소스에 공통 구성 속성을 추가합니다.

4.1.1. replicas

replicas 속성을 사용하여 복제본을 구성합니다.

복제 유형은 리소스에 따라 다릅니다.

  • KafkaTopic 은 복제 요소를 사용하여 Kafka 클러스터 내의 각 파티션의 복제본 수를 구성합니다.
  • Kafka 구성 요소는 복제본을 사용하여 배포의 Pod 수를 구성하여 가용성과 확장성을 향상시킵니다.
참고

OpenShift에서 Kafka 구성 요소를 실행하는 경우 고가용성을 위해 여러 복제본을 실행할 필요가 없을 수 있습니다. 구성 요소가 배포된 노드가 충돌하면 OpenShift는 Kafka 구성 요소 포드를 다른 노드에 자동으로 다시 지정합니다. 그러나 여러 복제본으로 Kafka 구성 요소를 실행하면 다른 노드가 가동되어 실행되므로 장애 조치 시간이 단축될 수 있습니다.

4.1.2. bootstrapServers

bootstrapServers 속성을 사용하여 부트스트랩 서버 목록을 구성합니다.

부트스트랩 서버 목록은 동일한 OpenShift 클러스터에 배포되지 않은 Kafka 클러스터를 참조할 수 있습니다. 또한 AMQ Streams에서 배포하지 않는 Kafka 클러스터를 참조할 수도 있습니다.

동일한 OpenShift 클러스터에서 각 목록에 CLUSTER-NAME-kafka-bootstrap 및 포트 번호라는 Kafka 클러스터 부트스트랩 서비스가 포함되어 있어야 합니다. AMQ Streams에서 배포하지만 다른 OpenShift 클러스터에는 목록 콘텐츠는 클러스터를 노출하는 데 사용되는 접근 방식(라우트, 인그레스, 노드 포트 또는 로드 밸런서)에 따라 달라집니다.

AMQ Streams에서 관리하지 않는 Kafka 클러스터와 함께 Kafka를 사용하는 경우 지정된 클러스터의 구성에 따라 부트스트랩 서버 목록을 지정할 수 있습니다.

4.1.3. SSL (지원되는 TLS 버전 및 암호화 제품군)

SSL 구성 및 암호화 제품군 사양을 통합하여 클라이언트 애플리케이션과 Kafka 클러스터 간의 TLS 기반 통신을 추가로 보호할 수 있습니다. 표준 TLS 구성 외에도 Kafka 브로커의 구성에서 지원되는 TLS 버전을 지정하고 암호화 제품군을 활성화할 수 있습니다. 사용하는 TLS 버전 및 암호화 제품군을 제한하려면 클라이언트에 구성을 추가할 수도 있습니다. 클라이언트의 구성은 브로커에서 활성화된 프로토콜 및 암호화 제품군만 사용해야 합니다.

암호화 제품군은 보안 연결 및 데이터 전송을 위한 보안 메커니즘 집합입니다. 예를 들어 암호화 제품군 TLS_AES_256_GCM_SHA384 는 TLS 프로토콜과 함께 사용되는 다음과 같은 메커니즘으로 구성됩니다.

  • AES(Advanced Encryption Standard) 암호화(256비트 키)
  • GCM (Galois/Counter Mode) 인증 암호화
  • SHA384 (Secure Hash Algorithm) 데이터 무결성 보호

이 조합은 TLS_AES_256_GCM_SHA384 암호화 제품군 사양에 캡슐화됩니다.

ssl.enabled.protocols 속성은 클러스터와 해당 클라이언트 간의 보안 통신에 사용할 수 있는 사용 가능한 TLS 버전을 지정합니다. ssl.protocol 속성은 모든 연결에 대한 기본 TLS 버전을 설정하며 활성화된 프로토콜에서 선택해야 합니다. ssl.endpoint.identification.algorithm 속성을 사용하여 호스트 이름 확인을 활성화하거나 비활성화합니다.

SSL 구성 예

# ...
config:
  ssl.cipher.suites: TLS_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 
1

  ssl.enabled.protocols: TLSv1.3, TLSv1.2 
2

  ssl.protocol: TLSv1.3 
3

  ssl.endpoint.identification.algorithm: HTTPS 
4

# ...

1
암호화 제품군 사양이 활성화되어 있습니다.
2
TLS 버전이 지원됩니다.
3
기본 TLS 버전은 TLSv1.3 입니다. 클라이언트가 TLSv1.2만 지원하는 경우 브로커에 계속 연결하여 지원되는 버전을 사용하여 통신할 수 있으며, 구성이 클라이언트에 있고 브로커는 TLSv1.2만 지원하는 경우에도 마찬가지입니다.
4
HTTPS 로 설정하여 호스트 이름 확인이 활성화됩니다. 빈 문자열은 확인을 비활성화합니다.

4.1.4. trustedCertificates

TLS 암호화를 구성하기 위해 tls 를 설정하는 경우 trustedCertificates 속성을 사용하여 인증서가 X.509 형식으로 저장되는 키 이름으로 시크릿 목록을 제공합니다.

Kafka 클러스터의 Cluster Operator에서 생성한 보안을 사용하거나 고유한 TLS 인증서 파일을 생성한 다음 파일에서 시크릿 을 생성할 수 있습니다.

oc create secret generic MY-SECRET \
--from-file=MY-TLS-CERTIFICATE-FILE.crt

TLS 암호화 구성 예

tls:
  trustedCertificates:
    - secretName: my-cluster-cluster-cert
      certificate: ca.crt
    - secretName: my-cluster-cluster-cert
      certificate: ca2.crt

인증서가 동일한 보안에 저장된 경우 여러 번 나열할 수 있습니다.

TLS 암호화를 활성화하지만 Java와 함께 제공되는 기본 공개 인증 기관 세트를 사용하려면 trustedCertificates 를 빈 배열로 지정할 수 있습니다.

기본 Java 인증서를 사용하여 TLS 활성화 예

tls:
  trustedCertificates: []

mTLS 인증 구성에 대한 자세한 내용은 KafkaClientAuthenticationTls 스키마 참조 를 참조하십시오.

4.1.5. resources

AMQ Streams 컨테이너의 리소스를 제어하도록 리소스 요청제한을 구성합니다. 메모리cpu 리소스에 대한 요청 및 제한을 지정할 수 있습니다. Kafka의 안정적인 성능을 보장하기 위해 요청이 충분해야 합니다.

프로덕션 환경에서 리소스를 구성하는 방법은 여러 요인에 따라 다릅니다. 예를 들어, 애플리케이션이 OpenShift 클러스터에서 리소스를 공유할 수 있습니다.

Kafka의 경우 배포의 다음 측면이 필요한 리소스에 영향을 미칠 수 있습니다.

  • 메시지 처리량 및 크기
  • 메시지를 처리하는 네트워크 스레드 수
  • 생산자 및 소비자 수
  • 주제 및 파티션 수

리소스 요청에 지정된 값은 예약되어 항상 컨테이너에서 사용할 수 있습니다. 리소스 제한은 지정된 컨테이너에서 사용할 수 있는 최대 리소스를 지정합니다. 요청 및 제한 사이의 양은 예약되지 않으며 항상 사용할 수 없습니다. 컨테이너는 사용 가능한 경우에만 제한까지 리소스를 사용할 수 있습니다. 리소스 제한은 임시이며 다시 할당할 수 있습니다.

리소스 요청 및 제한

Boundaries of a resource requests and limits

요청없이 제한을 설정하거나 그 반대의 경우도 마찬가지인 경우 OpenShift는 둘 다 동일한 값을 사용합니다. 리소스에 대해 동일한 요청 및 제한을 설정하면 서비스 품질이 보장되며, OpenShift는 제한을 초과하지 않는 한 컨테이너를 종료하지 않습니다.

하나 이상의 지원되는 리소스에 대한 리소스 요청 및 제한을 구성할 수 있습니다.

리소스 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    #...
    resources:
      requests:
        memory: 64Gi
        cpu: "8"
      limits:
        memory: 64Gi
        cpu: "12"
  entityOperator:
    #...
    topicOperator:
      #...
      resources:
        requests:
          memory: 512Mi
          cpu: "1"
        limits:
          memory: 512Mi
          cpu: "1"

Topic Operator 및 User Operator에 대한 리소스 요청 및 제한은 Kafka 리소스에 설정됩니다.

리소스 요청이 OpenShift 클러스터에서 사용 가능한 리소스보다 많은 경우 Pod가 예약되지 않습니다.

참고

AMQ Streams는 OpenShift 구문을 사용하여 메모리cpu 리소스를 지정합니다. OpenShift에서 컴퓨팅 리소스를 관리하는 방법에 대한 자세한 내용은 Managing Compute Resources for Containers 를 참조하십시오.

메모리 리소스

메모리 리소스를 구성할 때 구성 요소의 총 요구 사항을 고려하십시오.

Kafka는 JVM 내에서 실행되며 운영 체제 페이지 캐시를 사용하여 디스크에 쓰기 전에 메시지 데이터를 저장합니다. Kafka에 대한 메모리 요청은 JVM 힙 및 페이지 캐시에 적합해야 합니다. jvmOptions 속성을 구성하여 최소 및 최대 힙 크기를 제어할 수 있습니다.

다른 구성 요소는 페이지 캐시에 의존하지 않습니다. jvmOptions 를 구성하지 않고 힙 크기를 제어하도록 메모리 리소스를 구성할 수 있습니다.

메모리 요청 및 제한은 메가바이트, 기가바이트, 메비 바이트, 기가바이트로 지정됩니다. 사양에서 다음 접미사를 사용합니다.

  • 메가바이트의 경우 m
  • g for gigabytes
  • Mi for mebibytes
  • GI for gibibytes

다른 메모리 단위를 사용하는 리소스의 예

# ...
resources:
  requests:
    memory: 512Mi
  limits:
    memory: 2Gi
# ...

메모리 사양 및 추가 지원 단위에 대한 자세한 내용은 메모리 병합을 참조하십시오.

CPU 리소스

언제든지 안정적인 성능을 제공하기에 CPU 요청이 충분해야 합니다. CPU 요청 및 제한은 코어 또는 밀리코어/밀리 코어 로 지정됩니다.

CPU 코어는 정수(CPU 코어5 개) 또는 10진수(2.5 CPU 코어)로 지정됩니다. 1000 밀리코어1 개의 CPU 코어와 동일합니다.

CPU 단위 예

# ...
resources:
  requests:
    cpu: 500m
  limits:
    cpu: 2.5
# ...

1개의 CPU 코어의 컴퓨팅 성능은 OpenShift가 배포된 플랫폼에 따라 다를 수 있습니다.

CPU 사양에 대한 자세한 내용은 CPU 병합을 참조하십시오.

4.1.6. image

image 속성을 사용하여 구성 요소에서 사용하는 컨테이너 이미지를 구성합니다.

컨테이너 이미지를 덮어쓰는 것은 다른 컨테이너 레지스트리 또는 사용자 지정된 이미지를 사용해야 하는 특별한 경우에만 권장됩니다.

예를 들어 네트워크에서 AMQ Streams에서 사용하는 컨테이너 리포지토리에 대한 액세스를 허용하지 않는 경우 AMQ Streams 이미지를 복사하거나 소스에서 빌드할 수 있습니다. 그러나 구성된 이미지가 AMQ Streams 이미지와 호환되지 않는 경우 제대로 작동하지 않을 수 있습니다.

컨테이너 이미지 사본도 사용자 정의하여 디버깅에 사용할 수 있습니다.

다음 리소스에서 image 속성을 사용하여 구성 요소에 사용할 컨테이너 이미지를 지정할 수 있습니다.

  • Kafka.spec.kafka
  • Kafka.spec.zookeeper
  • Kafka.spec.entityOperator.topicOperator
  • Kafka.spec.entityOperator.userOperator
  • Kafka.spec.entityOperator.tlsSidecar
  • KafkaConnect.spec
  • KafkaMirrorMaker.spec
  • KafkaMirrorMaker2.spec
  • KafkaBridge.spec

Kafka, Kafka Connect 및 Kafka MirrorMaker의 이미지 속성 구성

Kafka, Kafka Connect 및 Kafka MirrorMaker는 여러 Kafka 버전을 지원합니다. 각 구성 요소에는 자체 이미지가 필요합니다. 다른 Kafka 버전의 기본 이미지는 다음 환경 변수에 구성됩니다.

  • STRIMZI_KAFKA_IMAGES
  • STRIMZI_KAFKA_CONNECT_IMAGES
  • STRIMZI_KAFKA_MIRROR_MAKER_IMAGES

이러한 환경 변수에는 Kafka 버전과 해당 이미지 간의 매핑이 포함됩니다. 매핑은 이미지버전 속성과 함께 사용됩니다.

  • 사용자 정의 리소스에 이미지 또는 버전이 제공되지 않는 경우 버전 은 기본적으로 Cluster Operator의 기본 Kafka 버전으로 설정되며 이미지는 환경 변수에서 이 버전에 해당하는 버전이 됩니다.
  • 이미지가 제공되지만 버전이 지정된 경우 지정된 이미지가 사용되며 버전 은 Cluster Operator의 기본 Kafka 버전으로 간주됩니다.
  • 버전이 지정되었지만 이미지가 제공되지 않으면 환경 변수에서 지정된 버전에 해당하는 이미지가 사용됩니다.
  • 버전과 이미지가 모두 제공되면 지정된 이미지가 사용됩니다. 이미지는 지정된 버전의 Kafka 이미지를 포함하는 것으로 가정합니다.

다른 구성 요소의 이미지버전 은 다음 속성에서 구성할 수 있습니다.

  • spec.kafka.imagespec.kafka.version 의 Kafka의 경우
  • spec.imagespec.version 의 Kafka Connect 및 Kafka MirrorMaker의 경우
주의

버전 만 제공하고 image 속성을 지정하지 않은 상태로 두는 것이 좋습니다. 이렇게 하면 사용자 정의 리소스를 구성할 때 실수할 가능성이 줄어듭니다. Kafka의 다른 버전에 사용되는 이미지를 변경해야 하는 경우 Cluster Operator의 환경 변수를 구성하는 것이 좋습니다.

다른 리소스에서 image 속성 구성

다른 사용자 지정 리소스의 image 속성에 대해 배포 중에 지정된 값이 사용됩니다. image 속성이 누락되면 Cluster Operator 구성에 지정된 이미지가 사용됩니다. 이미지 이름이 Cluster Operator 구성에 정의되지 않은 경우 기본값이 사용됩니다.

  • Topic Operator의 경우:

    1. Cluster Operator 구성의 STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE 환경 변수에 지정된 컨테이너 이미지입니다.
    2. registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.4.0 container image.
  • 사용자 Operator의 경우 다음을 수행합니다.

    1. Cluster Operator 구성의 STRIMZI_DEFAULT_USER_OPERATOR_IMAGE 환경 변수에 지정된 컨테이너 이미지입니다.
    2. registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.4.0 container image.
  • Entity Operator TLS 사이드카의 경우:

    1. Cluster Operator 구성의 STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE 환경 변수에 지정된 컨테이너 이미지입니다.
    2. registry.redhat.io/amq-streams/kafka-34-rhel8:2.4.0 container image.
  • Kafka 내보내기의 경우:

    1. Cluster Operator 구성의 STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE 환경 변수에 지정된 컨테이너 이미지입니다.
    2. registry.redhat.io/amq-streams/kafka-34-rhel8:2.4.0 container image.
  • Kafka 브리지의 경우:

    1. Cluster Operator 구성의 STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE 환경 변수에 지정된 컨테이너 이미지입니다.
    2. registry.redhat.io/amq-streams/bridge-rhel8:2.4.0 container image.
  • Kafka 브로커의 경우:

    1. Cluster Operator 구성의 STRIMZI_DEFAULT_KAFKA_INIT_IMAGE 환경 변수에 지정된 컨테이너 이미지입니다.
    2. registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.4.0 container image.

컨테이너 이미지 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    image: my-org/my-image:latest
    # ...
  zookeeper:
    # ...

4.1.7. livenessProbe 및 readinessProbe 상태 점검

livenessProbereadinessProbe 속성을 사용하여 AMQ Streams에서 지원되는 상태 점검 프로브를 구성합니다.

상태 점검은 애플리케이션의 상태를 확인하는 주기적인 테스트입니다. 상태 점검 프로브가 실패하면 OpenShift는 애플리케이션이 정상이 아니며 이를 수정하려고 시도한다고 가정합니다.

프로브에 대한 자세한 내용은 활성 상태 및 준비 프로브 구성을 참조하십시오.

livenessProbereadinessProbe 는 다음 옵션을 모두 지원합니다.

  • initialDelaySeconds
  • timeoutSeconds
  • periodSeconds
  • successThreshold
  • failureThreshold

활성 상태 및 준비 상태 프로브 구성의 예

# ...
readinessProbe:
  initialDelaySeconds: 15
  timeoutSeconds: 5
livenessProbe:
  initialDelaySeconds: 15
  timeoutSeconds: 5
# ...

livenessProbereadinessProbe 옵션에 대한 자세한 내용은 프로브 스키마 참조 를 참조하십시오.

4.1.8. metricsConfig

metricsConfig 속성을 사용하여 Prometheus 지표를 활성화하고 구성합니다.

metricsConfig 속성에는 Prometheus exportser에 대한 추가 구성이 있는 ConfigMap에 대한 참조가 포함되어 있습니다. AMQ Streams는 Apache Kafka 및 ZooKeeper에서 지원하는 metrics를 Prometheus 지표로 변환하기 위해 Prometheus exporter를 사용하는 Prometheus 지표를 지원합니다.

추가 구성 없이 Prometheus 지표 내보내기를 활성화하려면 metricsConfig.valueFrom.configMapKeyRef.key 아래에 빈 파일이 포함된 ConfigMap을 참조할 수 있습니다. 빈 파일을 참조할 때 이름이 변경되지 않은 한 모든 메트릭이 노출됩니다.

Kafka에 대한 메트릭 구성이 있는 ConfigMap의 예

kind: ConfigMap
apiVersion: v1
metadata:
  name: my-configmap
data:
  my-key: |
    lowercaseOutputName: true
    rules:
    # Special cases and very specific rules
    - pattern: kafka.server<type=(.+), name=(.+), clientId=(.+), topic=(.+), partition=(.*)><>Value
      name: kafka_server_$1_$2
      type: GAUGE
      labels:
       clientId: "$3"
       topic: "$4"
       partition: "$5"
    # further configuration

Kafka의 메트릭 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    metricsConfig:
      type: jmxPrometheusExporter
      valueFrom:
        configMapKeyRef:
          name: my-config-map
          key: my-key
    # ...
  zookeeper:
    # ...

메트릭이 활성화되면 포트 9404에 노출됩니다.

metricsConfig (또는 더 이상 사용되지 않는 메트릭) 속성이 리소스에 정의되지 않은 경우 Prometheus 지표가 비활성화됩니다.

Prometheus 및 Grafana 설정 및 배포에 대한 자세한 내용은 OpenShift 가이드에서 AMQ Streams 배포 및 업그레이드 에서 Kafka로 메트릭 소개 를 참조하십시오.

4.1.9. jvmOptions

다음 AMQ Streams 구성 요소는 Java 가상 머신(JVM) 내에서 실행됩니다.

  • Apache Kafka
  • Apache ZooKeeper
  • Apache Kafka Connect
  • Apache Kafka MirrorMaker
  • AMQ Streams Kafka Bridge

다양한 플랫폼 및 아키텍처에서 성능을 최적화하려면 다음 리소스에서 jvmOptions 속성을 구성합니다.

  • Kafka.spec.kafka
  • Kafka.spec.zookeeper
  • Kafka.spec.entityOperator.userOperator
  • Kafka.spec.entityOperator.topicOperator
  • Kafka.spec.cruiseControl
  • KafkaConnect.spec
  • KafkaMirrorMaker.spec
  • KafkaMirrorMaker2.spec
  • KafkaBridge.spec

구성에 다음 옵션을 지정할 수 있습니다.

-Xms
JVM이 시작될 때 최소 초기 할당 힙 크기
-Xmx
최대 힙 크기
-XX
JVM에 대한 고급 런타임 옵션
javaSystemProperties
추가 시스템 속성
gcLoggingEnabled
가비지 수집기 로깅 사용
참고

-Xmx-Xms 와 같은 JVM 설정에서 승인한 단위는 해당 이미지에서 JDK java 바이너리에서 허용하는 단위와 동일합니다. 따라서 1g 또는 1G 는 1,073,741,824 바이트를 의미하며 Gi 는 유효한 단위 접미사가 아닙니다. 이는 메모리 요청 및 제한에 사용되는 단위와 다르며 1G는 1G 가 1,000,000,000바이트를 의미하며 1Gi 는 1,073,741,824 바이트를 의미합니다.

-Xms-Xmx 옵션

컨테이너의 메모리 요청 및 제한 값을 설정하는 것 외에도 -Xms-Xmx JVM 옵션을 사용하여 JVM에 특정 힙 크기를 설정할 수 있습니다. Xms 옵션을 사용하여 초기 힙 크기 및 -Xmx 옵션을 사용하여 최대 힙 크기를 설정합니다.

JVM에 할당된 메모리를 더 많이 제어할 수 있도록 힙 크기를 지정합니다. 힙 크기는 이를 초과하지 않고 컨테이너의 메모리 제한(및 요청) 을 최대한 사용해야 합니다. 힙 크기 및 기타 메모리 요구 사항은 지정된 메모리 제한 내에 적합해야 합니다. 구성에 힙 크기를 지정하지 않고 메모리 리소스 제한(및 요청)을 구성하면 Cluster Operator에서 기본 힙 크기를 자동으로 적용합니다. Cluster Operator는 메모리 리소스 구성의 백분율에 따라 기본 최대값 및 최소 힙 값을 설정합니다.

다음 표에서는 기본 힙 값을 보여줍니다.

Expand
표 4.1. 구성 요소의 기본 힙 설정
구성 요소힙에 할당된 사용 가능한 메모리의 백분율최대 제한

Kafka

50%

5GB

ZooKeeper

75%

2GB

Kafka Connect

75%

없음

MirrorMaker 2

75%

없음

MirrorMaker

75%

없음

크루즈 컨트롤

75%

없음

Kafka 브리지

50%

31 Gi

메모리 제한(및 요청)을 지정하지 않으면 JVM의 최소 힙 크기가 128M 으로 설정됩니다. JVM의 최대 힙 크기는 필요에 따라 메모리를 늘릴 수 있도록 정의되지 않습니다. 테스트 및 개발의 단일 노드 환경에 적합합니다.

적절한 메모리 요청을 설정하면 다음을 방지할 수 있습니다.

  • 노드에서 실행되는 다른 포드의 메모리가 부족하면 OpenShift에서 컨테이너를 종료합니다.
  • OpenShift는 메모리가 충분하지 않은 노드에 컨테이너를 예약합니다. Xms-Xmx 로 설정되면 컨테이너가 즉시 충돌합니다. 그렇지 않으면 컨테이너가 나중에 충돌합니다.

이 예에서 JVM은 힙에 2GiB(=2,147,483,648바이트)를 사용합니다. 총 JVM 메모리 사용량은 최대 힙 크기보다 훨씬 클 수 있습니다.

-Xmx-Xms 구성

# ...
jvmOptions:
  "-Xmx": "2g"
  "-Xms": "2g"
# ...

초기(-Xms) 및 최대(-Xmx) 힙 크기에 동일한 값을 설정하면 시작 후 JVM에서 메모리를 할당할 필요가 없습니다.

중요

Kafka 브로커 컨테이너와 같은 많은 디스크 I/O를 수행하는 컨테이너에는 운영 체제 페이지 캐시로 사용할 수 있는 메모리가 필요합니다. 이러한 컨테이너의 경우 요청된 메모리는 JVM에서 사용하는 메모리보다 크게 커야 합니다.

-XX 옵션

-XX 옵션은 Apache Kafka의 KAFKA_JVM_PERFORMANCE_OPTS 옵션을 구성하는 데 사용됩니다.

-XX 구성 예

jvmOptions:
  "-XX":
    "UseG1GC": true
    "MaxGCPauseMillis": 20
    "InitiatingHeapOccupancyPercent": 35
    "ExplicitGCInvokesConcurrent": true

-XX 구성으로 생성되는 JVM 옵션

-XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:-UseParNewGC

참고

-XX 옵션이 지정되지 않으면 KAFKA_JVM_PERFORMANCE_OPTS 의 기본 Apache Kafka 구성이 사용됩니다.

javaSystemProperties

javaSystemProperties 는 디버깅 유틸리티와 같은 추가 Java 시스템 속성을 구성하는 데 사용됩니다.

javaSystemProperties 구성 예

jvmOptions:
  javaSystemProperties:
    - name: javax.net.debug
      value: ssl

jvmOptions 에 대한 자세한 내용은 JvmOptions 스키마 참조 를 참조하십시오.

4.1.10. 가비지 수집기 로깅

jvmOptions 속성을 사용하면 가비지 수집기(GC) 로깅을 활성화 및 비활성화할 수 있습니다. GC 로깅은 기본적으로 비활성화되어 있습니다. 활성화하려면 다음과 같이 gcLoggingEnabled 속성을 설정합니다.

GC 로깅 구성 예

# ...
jvmOptions:
  gcLoggingEnabled: true
# ...

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동