4.3. 브로커 생성
Knative는 기본 채널 기반 브로커 구현을 제공합니다. 이 채널 기반 브로커는 개발 및 테스트 목적으로 사용할 수 있지만 프로덕션 환경에 적합한 이벤트 전달 보장은 제공하지 않습니다.
클러스터 관리자가 Apache Kafka를 기본 브로커 유형으로 사용하도록 OpenShift Serverless 배포를 구성한 경우 기본 설정을 사용하여 브로커를 생성하면 Apache Kafka용 Knative 브로커가 생성됩니다.
OpenShift Serverless 배포가 Apache Kafka에 Knative 브로커를 기본 브로커 유형으로 사용하도록 구성되지 않은 경우 다음 절차의 기본 설정을 사용할 때 채널 기반 브로커가 생성됩니다.
4.3.1. Knative CLI를 사용하여 브로커 생성
브로커는 트리거와 함께 이벤트 소스에서 이벤트 싱크로 이벤트를 전달할 수 있습니다. Knative(kn
) CLI를 사용하여 브로커를 생성하면 YAML 파일을 직접 수정하는 것보다 간소화되고 직관적인 사용자 인터페이스가 제공됩니다. kn broker create
명령을 사용하여 브로커를 생성할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
-
Knative(
kn
) CLI가 설치되어 있습니다. - 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
프로세스
브로커를 생성합니다.
$ kn broker create <broker_name>
검증
kn
명령을 사용하여 기존 브로커를 모두 나열합니다.$ kn broker list
출력 예
NAME URL AGE CONDITIONS READY REASON default http://broker-ingress.knative-eventing.svc.cluster.local/test/default 45s 5 OK / 5 True
선택 사항: OpenShift Container Platform 웹 콘솔을 사용하는 경우 개발자 화면에서 토폴로지 보기로 이동하여 브로커가 존재하는지 관찰할 수 있습니다.
4.3.2. 트리거에 주석을 달아 브로커 생성
브로커는 트리거와 함께 이벤트 소스에서 이벤트 싱크로 이벤트를 전달할 수 있습니다. Trigger
오브젝트에 eventing.knative.dev/injection: enabled
주석을 추가하여 브로커를 생성할 수 있습니다.
eventing.knative.dev/injection: enabled
주석을 사용하여 브로커를 생성하는 경우 클러스터 관리자 권한이 없어 이 브로커를 삭제할 수 없습니다. 클러스터 관리자가 이 주석을 먼저 제거하기 전에 브로커를 삭제하면 삭제 후 브로커가 다시 생성됩니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
-
OpenShift CLI(
oc
)를 설치합니다. - 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
프로세스
eventing.knative.dev/injection: enabled
주석이 있는Trigger
오브젝트를 YAML 파일로 생성합니다.apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: annotations: eventing.knative.dev/injection: enabled name: <trigger_name> spec: broker: default subscriber: 1 ref: apiVersion: serving.knative.dev/v1 kind: Service name: <service_name>
- 1
- 트리거에서 이벤트를 전송할 대상 이벤트 싱크 또는 구독자에 대한 세부 정보를 지정합니다.
Trigger
YAML 파일을 적용합니다.$ oc apply -f <filename>
검증
oc
CLI를 사용하거나 웹 콘솔의 토폴로지 보기에서 브로커가 생성되었는지 확인할 수 있습니다.
oc
명령을 사용하여 브로커를 가져옵니다.$ oc -n <namespace> get broker default
출력 예
NAME READY REASON URL AGE default True http://broker-ingress.knative-eventing.svc.cluster.local/test/default 3m56s
선택 사항: OpenShift Container Platform 웹 콘솔을 사용하는 경우 개발자 화면에서 토폴로지 보기로 이동하여 브로커가 존재하는지 관찰할 수 있습니다.
4.3.3. 네임스페이스에 라벨을 지정하여 브로커 생성
브로커는 트리거와 함께 이벤트 소스에서 이벤트 싱크로 이벤트를 전달할 수 있습니다. 소유하고 있거나 쓰기 권한이 있는 네임스페이스에 라벨을 지정하여 default
브로커를 자동으로 생성할 수 있습니다.
이 방법을 사용하여 생성한 브로커는 라벨을 제거하면 제거되지 않습니다. 수동으로 삭제해야 합니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
-
OpenShift CLI(
oc
)를 설치합니다. - 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
- AWS 또는 OpenShift Dedicated에서 Red Hat OpenShift Service를 사용하는 경우 클러스터 또는 전용 관리자 권한이 있습니다.
프로세스
eventing.knative.dev/injection=enabled
를 사용하여 네임스페이스에 라벨을 지정합니다.$ oc label namespace <namespace> eventing.knative.dev/injection=enabled
검증
oc
CLI를 사용하거나 웹 콘솔의 토폴로지 보기에서 브로커가 생성되었는지 확인할 수 있습니다.
oc
명령을 사용하여 브로커를 가져옵니다.$ oc -n <namespace> get broker <broker_name>
명령 예
$ oc -n default get broker default
출력 예
NAME READY REASON URL AGE default True http://broker-ingress.knative-eventing.svc.cluster.local/test/default 3m56s
선택 사항: OpenShift Container Platform 웹 콘솔을 사용하는 경우 개발자 화면에서 토폴로지 보기로 이동하여 브로커가 존재하는지 관찰할 수 있습니다.
4.3.4. 삽입을 통해 생성된 브로커 삭제
삽입을 통해 브로커를 생성하고 나중에 삭제하려는 경우 수동으로 삭제해야 합니다. 레이블 또는 주석을 제거하면 네임스페이스 레이블 또는 트리거 주석을 사용하여 생성한 브로커는 영구적으로 삭제되지 않습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다.
프로세스
네임스페이스에서
eventing.knative.dev/injection=enabled
라벨을 제거합니다.$ oc label namespace <namespace> eventing.knative.dev/injection-
주석을 제거하면 Knative에서 브로커를 삭제한 후 다시 생성하지 않습니다.
선택한 네임스페이스에서 브로커를 삭제합니다.
$ oc -n <namespace> delete broker <broker_name>
검증
oc
명령을 사용하여 브로커를 가져옵니다.$ oc -n <namespace> get broker <broker_name>
명령 예
$ oc -n default get broker default
출력 예
No resources found. Error from server (NotFound): brokers.eventing.knative.dev "default" not found
4.3.5. 웹 콘솔을 사용하여 브로커 생성
Knative Eventing이 클러스터에 설치되면 웹 콘솔을 사용하여 브로커를 생성할 수 있습니다. OpenShift Container Platform 웹 콘솔을 사용하면 간소화되고 직관적인 사용자 인터페이스를 제공하여 브로커를 생성할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 웹 콘솔에 로그인했습니다.
- OpenShift Serverless Operator, Knative Serving 및 Knative Eventing이 클러스터에 설치되어 있습니다.
- 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
프로세스
-
개발자 화면에서 +추가
브로커로 이동합니다. 브로커 페이지가 표시됩니다. -
선택 사항: 브로커 의 이름을 업데이트합니다. 이름을 업데이트하지 않으면 생성된 브로커의 이름이
default
입니다. - 생성을 클릭합니다.
검증
토폴로지 페이지에서 브로커 구성 요소를 확인하여 브로커가 생성되었는지 확인할 수 있습니다.
- 개발자 화면에서 토폴로지로 이동합니다.
mt-broker-ingress
,mt-broker-filter
,mt-broker-controller
구성 요소를 확인합니다.
4.3.6. 관리자 화면을 사용하여 브로커 생성
브로커는 트리거와 함께 이벤트 소스에서 이벤트 싱크로 이벤트를 전달할 수 있습니다. 이벤트는 이벤트 소스에서 HTTP POST
요청으로 브로커로 전송됩니다. 이벤트가 브로커에 진입하면 트리거를 사용하여 CloudEvent 속성으로 필터링하고 이벤트 싱크에 HTTP POST
요청으로 보낼 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
- 웹 콘솔에 로그인한 후 관리자 화면에 있습니다.
- OpenShift Container Platform에 대한 클러스터 관리자 권한이 있거나 AWS 또는 OpenShift Dedicated의 Red Hat OpenShift Service에 대한 클러스터 또는 전용 관리자 권한이 있습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 Serverless
Eventing으로 이동합니다. - 생성 목록에서 브로커를 선택합니다. 그러면 브로커 생성 페이지로 이동합니다.
- 선택 사항: 브로커의 YAML 구성을 수정합니다.
- 생성을 클릭합니다.