3.5. Knative Eventing 설치

클러스터에서 이벤트 중심 아키텍처를 사용하려면 Knative Eventing을 설치합니다. 이벤트 소스, 브로커 및 채널과 같은 Knative 구성 요소를 생성한 다음 이를 사용하여 이벤트 또는 외부 시스템으로 이벤트를 전송할 수 있습니다.

OpenShift Serverless Operator를 설치한 후 기본 설정을 사용하여 Knative Eventing을 설치하거나 KnativeEventing CR(사용자 정의 리소스)에서 고급 설정을 구성할 수 있습니다. KnativeEventing CR의 구성 옵션에 대한 자세한 내용은 글로벌 구성을 참조하십시오.

중요

OpenShift Serverless에서 Red Hat OpenShift 분산 추적을 사용하려면 Knative Eventing을 설치하기 전에 Red Hat OpenShift distributed tracing을 설치하고 구성해야 합니다.

3.5.1. 웹 콘솔을 사용하여 Knative Eventing 설치

OpenShift Serverless Operator를 설치한 후 OpenShift Container Platform 웹 콘솔을 사용하여 Knative Eventing을 설치합니다. 기본 설정을 사용하여 Knative Eventing을 설치하거나 KnativeEventing CR(사용자 정의 리소스)에서 고급 설정을 구성할 수 있습니다.

사전 요구 사항

  • 클러스터 관리자 액세스 권한이 있는 OpenShift Container Platform 계정에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 로그인했습니다.
  • OpenShift Serverless Operator를 설치했습니다.

절차

  1. OpenShift Container Platform 웹 콘솔의 관리자 화면에서 Operator설치된 Operator로 이동합니다.
  2. 페이지 상단에 있는 프로젝트 드롭다운이 Project: knative-eventing으로 설정되어 있는지 확인합니다.
  3. OpenShift Serverless Operator의 제공되는 API 목록에서 Knative Eventing을 클릭하여 Knative Eventing 탭으로 이동합니다.
  4. Knative Eventing 생성을 클릭합니다.
  5. Knative Eventing 생성 페이지에서 제공된 기본 양식을 사용하거나 YAML을 편집하여 KnativeEventing 오브젝트를 구성하도록 선택할 수 있습니다.

    • 해당 양식은 KnativeEventing 오브젝트 생성을 완전히 제어할 필요가 없는 단순한 구성에 사용하는 것이 좋습니다.

      선택 사항입니다. 양식을 사용하여 KnativeEventing 오브젝트를 구성하는 경우 Knative Eventing 배포에 구현하려는 변경을 수행합니다.

  6. 생성을 클릭합니다.

    • KnativeEventing 오브젝트 생성을 완전히 제어해야 하는 복잡한 구성의 경우 YAML을 편집하는 것이 좋습니다. Knative Eventing 생성 페이지의 오른쪽 상단에 있는 YAML 편집 링크를 클릭하여 YAML에 액세스할 수 있습니다.

      선택 사항입니다. YAML을 편집하여 KnativeEventing 오브젝트를 구성하는 경우 YAML에 Knative Eventing 배포에 구현하려는 변경을 수행합니다.

  7. 생성을 클릭합니다.
  8. Knative Eventing을 설치하면 KnativeEventing 오브젝트가 생성되고 Knative Eventing 탭으로 자동으로 이동합니다. 리소스 목록에 knative-eventing 사용자 정의 리소스가 표시됩니다.

검증

  1. Knative Eventing 탭에서 knative-eventing 사용자 정의 리소스를 클릭합니다.
  2. 그러면 Knative Eventing 개요 페이지로 자동으로 이동합니다.

    Knative Eventing 개요 페이지
  3. 조건 목록을 보려면 아래로 스크롤합니다.
  4. 예제 이미지에 표시된 대로 상태가 True인 조건 목록이 표시되어야 합니다.

    조건
    참고

    Knative Eventing 리소스를 생성하는 데 몇 초가 걸릴 수 있습니다. 리소스 탭에서 해당 상태를 확인할 수 있습니다.

  5. 조건이 알 수 없음 또는 False 상태인 경우 몇 분 정도 기다렸다가 리소스가 생성된 것을 확인한 후 다시 확인하십시오.

3.5.2. YAML을 사용하여 Knative Eventing 설치

OpenShift Serverless Operator를 설치한 후 기본 설정을 사용하여 Knative Eventing을 설치하거나 KnativeEventing CR(사용자 정의 리소스)에서 고급 설정을 구성할 수 있습니다. 다음 절차에 따라 YAML 파일 및 oc CLI를 사용하여 Knative Eventing을 설치할 수 있습니다.

사전 요구 사항

  • 클러스터 관리자 액세스 권한이 있는 OpenShift Container Platform 계정에 액세스할 수 있습니다.
  • OpenShift Serverless Operator를 설치했습니다.
  • OpenShift CLI(oc)를 설치합니다.

절차

  1. eventing.yaml이라는 파일을 생성합니다.
  2. 다음 샘플 YAML을 eventing.yaml에 복사합니다.

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeEventing
    metadata:
        name: knative-eventing
        namespace: knative-eventing
  3. 선택 사항입니다. Knative Eventing 배포를 위해 구현하려는 YAML을 변경합니다.
  4. 다음을 입력하여 eventing.yaml 파일을 적용합니다.

    $ oc apply -f eventing.yaml

검증

  1. 다음 명령을 입력하고 출력을 관찰하여 설치가 완료되었는지 확인합니다.

    $ oc get knativeeventing.operator.knative.dev/knative-eventing \
      -n knative-eventing \
      --template='{{range .status.conditions}}{{printf "%s=%s\n" .type .status}}{{end}}'

    출력 예

    InstallSucceeded=True
    Ready=True

    참고

    Knative Eventing 리소스를 생성하는 데 몇 초가 걸릴 수 있습니다.

  2. 조건이 알 수 없음 또는 False 상태인 경우 몇 분 정도 기다렸다가 리소스가 생성된 것을 확인한 후 다시 확인하십시오.
  3. 다음을 입력하여 Knative Eventing 리소스가 생성되었는지 확인합니다.

    $ oc get pods -n knative-eventing

    출력 예

    NAME                                   READY   STATUS    RESTARTS   AGE
    broker-controller-58765d9d49-g9zp6     1/1     Running   0          7m21s
    eventing-controller-65fdd66b54-jw7bh   1/1     Running   0          7m31s
    eventing-webhook-57fd74b5bd-kvhlz      1/1     Running   0          7m31s
    imc-controller-5b75d458fc-ptvm2        1/1     Running   0          7m19s
    imc-dispatcher-64f6d5fccb-kkc4c        1/1     Running   0          7m18s

3.5.3. Knative Kafka 설치

Knative Kafka는 OpenShift Serverless에서 지원되는 Apache Kafka 메시지 스트리밍 플랫폼을 사용할 수 있는 통합 옵션을 제공합니다. Knative Kafka 기능은 KnativeKafka 사용자 정의 리소스를 설치한 경우 OpenShift Serverless 설치에서 사용할 수 있습니다.

사전 요구 사항

  • OpenShift Serverless Operator 및 Knative Eventing을 클러스터에 설치했습니다.
  • Red Hat AMQ Streams 클러스터에 액세스할 수 있습니다.
  • 확인 단계를 사용하려면 OpenShift CLI(oc)를 설치합니다.
  • OpenShift Container Platform에 대한 클러스터 관리자 권한이 있습니다.
  • OpenShift Container Platform 웹 콘솔에 로그인되어 있습니다.

절차

  1. 관리자 화면에서 Operator설치된 Operator로 이동합니다.
  2. 페이지 상단에 있는 프로젝트 드롭다운이 Project: knative-eventing으로 설정되어 있는지 확인합니다.
  3. OpenShift Serverless Operator의 Provided APIs 목록에서 Knative Kafka를 검색하여 Create Instance를 클릭합니다.
  4. Knative Kafka 생성 페이지에서 KnativeKafka 오브젝트를 구성합니다.

    중요

    클러스터에서 Kafka 채널, 소스, 브로커 또는 싱크를 사용하려면 사용할 옵션에 대해 활성화된 스위치를 true 로 전환해야 합니다. 이러한 스위치는 기본적으로 false로 설정됩니다. 또한 Kafka 채널, 브로커 또는 싱크를 사용하려면 부트스트랩 서버를 지정해야 합니다.

    KnativeKafka 사용자 정의 리소스의 예

    apiVersion: operator.serverless.openshift.io/v1alpha1
    kind: KnativeKafka
    metadata:
        name: knative-kafka
        namespace: knative-eventing
    spec:
        channel:
            enabled: true 1
            bootstrapServers: <bootstrap_servers> 2
        source:
            enabled: true 3
        broker:
            enabled: true 4
            defaultConfig:
                bootstrapServers: <bootstrap_servers> 5
                numPartitions: <num_partitions> 6
                replicationFactor: <replication_factor> 7
        sink:
            enabled: true 8

    1
    개발자가 클러스터에서 KafkaChannel 채널 유형을 사용할 수 있습니다.
    2
    AMQ Streams 클러스터에 있는 쉼표로 구분된 부트스트랩 서버 목록입니다.
    3
    개발자가 클러스터에서 KafkaSource 이벤트 소스 유형을 사용할 수 있습니다.
    4
    개발자가 클러스터에서 Knative Kafka 브로커 구현을 사용할 수 있습니다.
    5
    Red Hat AMQ Streams 클러스터에서 쉼표로 구분된 부트스트랩 서버 목록입니다.
    6
    Broker 오브젝트에서 지원하는 Kafka 주제의 파티션 수를 정의합니다. 기본값은 10입니다.
    7
    Broker 오브젝트에서 지원하는 Kafka 주제의 복제 요소를 정의합니다. 기본값은 3 입니다.
    8
    개발자가 클러스터에서 Kafka 싱크를 사용할 수 있습니다.
    참고

    replication factor 값은 Red Hat AMQ Streams 클러스터의 노드 수보다 작거나 같아야 합니다.

    1. 해당 양식은 KnativeKafka 오브젝트 생성을 완전히 제어할 필요가 없는 단순한 구성에 사용하는 것이 좋습니다.
    2. KnativeKafka 오브젝트 생성을 완전히 제어해야 하는 복잡한 구성의 경우 YAML을 편집하는 것이 좋습니다. Knative Kafka 생성 페이지의 오른쪽 상단에 있는 YAML 편집 링크를 클릭하여 YAML에 액세스할 수 있습니다.
  5. Kafka에 대한 선택적 구성을 완료한 후 생성을 클릭합니다. 그러면 리소스 목록에 knative-kafka가 있는 Knative Kafka 탭으로 자동으로 이동합니다.

검증

  1. Knative Kafka 탭에서 knative-kafka 리소스를 클릭합니다. 그러면 자동으로 Knative Kafka 개요 페이지로 이동합니다.
  2. 리소스에 대한 조건 목록을 확인하고 상태가 True인지 확인합니다.

    조건을 보여주는 Kafka Knative 개요 페이지

    조건 상태가 알 수 없음 또는 False인 경우 몇 분 정도 기다린 후 페이지를 새로 고칩니다.

  3. Knative Kafka 리소스가 생성되었는지 확인합니다.

    $ oc get pods -n knative-eventing

    출력 예

    NAME                                        READY   STATUS    RESTARTS   AGE
    kafka-broker-dispatcher-7769fbbcbb-xgffn    2/2     Running   0          44s
    kafka-broker-receiver-5fb56f7656-fhq8d      2/2     Running   0          44s
    kafka-channel-dispatcher-84fd6cb7f9-k2tjv   2/2     Running   0          44s
    kafka-channel-receiver-9b7f795d5-c76xr      2/2     Running   0          44s
    kafka-controller-6f95659bf6-trd6r           2/2     Running   0          44s
    kafka-source-dispatcher-6bf98bdfff-8bcsn    2/2     Running   0          44s
    kafka-webhook-eventing-68dc95d54b-825xs     2/2     Running   0          44s

3.5.4. 다음 단계