10장. 이벤트링 구성 튜닝


10.1. Knative Eventing 시스템 배포 구성 덮어쓰기

KnativeEventing CR(사용자 정의 리소스)의 workloads 사양을 수정하여 일부 특정 배포의 기본 구성을 덮어쓸 수 있습니다. 현재 eventing-controller,eventing-webhook, imc-controller 필드 및 프로브의 준비활성 필드에 대해 기본 구성 설정을 재정의할 수 있습니다.

중요

replicas 사양은 HPA(horizontal Pod Autoscaler)를 사용하는 배포의 복제본 수를 재정의할 수 없으며 eventing-webhook 배포에는 작동하지 않습니다.

참고

기본적으로 배포에 정의된 프로브만 덮어쓸 수 있습니다.

10.1.1. 배포 구성 덮어쓰기

현재 eventing-controller,eventing-webhook, imc-controller 필드 및 프로브의 준비활성 필드에 대해 기본 구성 설정을 재정의할 수 있습니다.

중요

replicas 사양은 HPA(horizontal Pod Autoscaler)를 사용하는 배포의 복제본 수를 재정의할 수 없으며 eventing-webhook 배포에는 작동하지 않습니다.

다음 예에서 KnativeEventing CR은 다음과 같이 eventing-controller 배포를 덮어씁니다.

  • 준비 상태 프로브 시간 초과 eventing-controller 가 10초로 설정됩니다.
  • 배포에 CPU 및 메모리 리소스 제한이 지정되어 있습니다.
  • 배포에는 3개의 복제본이 있습니다.
  • example-label: 레이블이 추가되었습니다.
  • example-annotation: 주석 주석이 추가되었습니다.
  • nodeSelector 필드는 disktype: hdd 라벨이 있는 노드를 선택하도록 설정됩니다.

KnativeEventing CR 예

apiVersion: operator.knative.dev/v1beta1
kind: KnativeEventing
metadata:
  name: knative-eventing
  namespace: knative-eventing
spec:
  workloads:
  - name: eventing-controller
    readinessProbes: 1
      - container: controller
        timeoutSeconds: 10
    resources:
    - container: eventing-controller
      requests:
        cpu: 300m
        memory: 100Mi
      limits:
        cpu: 1000m
        memory: 250Mi
    replicas: 3
    labels:
      example-label: label
    annotations:
      example-annotation: annotation
    nodeSelector:
      disktype: hdd

1
준비 및 활성 상태 프로브 덮어쓰기를 사용하여 프로브 처리기와 관련된 필드를 제외하고 Kubernetes API에 지정된 대로 배포 컨테이너에서 프로브의 모든 필드를 덮어쓸 수 있습니다. exec,grpc,httpGet, tcpSocket.
참고

KnativeEventing CR 레이블 및 주석 설정은 배포 자체와 결과 Pod 모두에 대한 배포 레이블 및 주석을 재정의합니다.

10.1.2. 소비자 그룹 ID 및 주제 이름 수정

트리거, 브로커 및 채널에서 사용하는 소비자 그룹 ID 및 주제 이름을 생성하기 위한 템플릿을 변경할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform에 대한 클러스터 또는 전용 관리자 권한이 있습니다.
  • OpenShift Serverless Operator, Knative Eventing 및 KnativeKafka CR(사용자 정의 리소스)이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
  • 프로젝트를 생성하거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. 트리거, 브로커 및 채널에서 사용하는 소비자 그룹 ID 및 주제 이름을 생성하기 위한 템플릿을 변경하려면 KnativeKafka 리소스를 수정합니다.

    apiVersion: v1
    kind: KnativeKafka
    metadata:
      name: knative-kafka
      namespace: knative-eventing
    # ...
    spec:
      config:
        config-kafka-features:
          triggers.consumergroup.template: <template> 1
          brokers.topic.template: <template> 2
          channels.topic.template: <template> 3
    1
    트리거에서 사용하는 소비자 그룹 ID를 생성하기 위한 템플릿입니다. 유효한 Go 텍스트/템플릿 값을 사용합니다. 기본값은 "knative-trigger-{{ .Namespace }}-{{ .Name }}" 입니다.
    2
    브로커가 사용하는 Kafka 주제 이름을 생성하기 위한 템플릿입니다. 유효한 Go 텍스트/템플릿 값을 사용합니다. 기본값은 "knative-broker-{{ .Namespace }}-{{ .Name }}" 입니다.
    3
    채널에서 사용하는 Kafka 주제 이름을 생성하기 위한 템플릿입니다. 유효한 Go 텍스트/템플릿 값을 사용합니다. 기본값은 "messaging-kafka.{{ .Namespace }}.{{ .Name }}" 입니다.

    템플릿 구성 예

    apiVersion: v1
    kind: KnativeKafka
    metadata:
      name: knative-kafka
      namespace: knative-eventing
    # ...
    spec:
      config:
        config-kafka-features:
          triggers.consumergroup.template: "{% raw %}"knative-trigger-{{ .Namespace }}-{{ .Name }}-{{ .annotations.my-annotation }}"{% endraw %}"
          brokers.topic.template: "{% raw %}"knative-broker-{{ .Namespace }}-{{ .Name }}-{{ .annotations.my-annotation }}"{% endraw %}"
          channels.topic.template: "{% raw %}"messaging-kafka.{{ .Namespace }}.{{ .Name }}-{{ .annotations.my-annotation }}"{% endraw %}"

  2. KnativeKafka YAML 파일을 적용합니다.

    $ oc apply -f <knative_kafka_filename>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.