6.2. 채널 생성
채널은 단일 이벤트 전달 및 지속성 계층을 정의하는 사용자 정의 리소스입니다. 이벤트 소스 또는 생산자에서 채널로 이벤트를 보낸 후에는 서브스크립션을 사용하여 이러한 이벤트를 여러 Knative 서비스 또는 기타 싱크로 보낼 수 있습니다.
지원되는 Channel
오브젝트를 인스턴스화하여 채널을 생성하고 Subscription
오브젝트의 delivery
사양을 수정하여 재전송 시도를 구성할 수 있습니다.
6.2.1. 관리자 화면을 사용하여 채널 생성
Knative Eventing이 클러스터에 설치되면 관리자 화면을 사용하여 채널을 생성할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
- 웹 콘솔에 로그인한 후 관리자 화면에 있습니다.
- OpenShift Container Platform에 대한 클러스터 관리자 권한이 있거나 AWS 또는 OpenShift Dedicated의 Red Hat OpenShift Service에 대한 클러스터 또는 전용 관리자 권한이 있습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 Serverless
Eventing으로 이동합니다. - 생성 목록에서 채널을 선택합니다. 그러면 채널 페이지로 이동합니다.
유형 목록에서 생성할
Channel
오브젝트 유형을 선택합니다.참고현재
InMemoryChannel
채널 오브젝트만 기본적으로 지원됩니다. OpenShift Serverless에 Apache Kafka에 Knative 브로커 구현을 설치한 경우 Apache Kafka의 Knative 채널을 사용할 수 있습니다.- 생성을 클릭합니다.
6.2.2. 개발자 화면을 사용하여 채널 생성
OpenShift Container Platform 웹 콘솔을 사용하면 간소화되고 직관적인 사용자 인터페이스를 통해 채널을 생성할 수 있습니다. Knative Eventing이 클러스터에 설치되면 웹 콘솔을 사용하여 채널을 생성할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 웹 콘솔에 로그인했습니다.
- OpenShift Serverless Operator 및 Knative Eventing이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
- 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
프로세스
-
개발자 화면에서 +추가
채널로 이동합니다. -
유형 목록에서 생성할
Channel
오브젝트 유형을 선택합니다. - 생성을 클릭합니다.
검증
토폴로지 페이지로 이동하여 채널이 있는지 확인합니다.
6.2.3. Knative CLI를 사용하여 채널 생성
Knative(kn
) CLI를 사용하여 채널을 생성하면 YAML 파일을 직접 수정하는 것보다 더 효율적이고 직관적인 사용자 인터페이스가 제공됩니다. kn channel create
명령을 사용하여 채널을 생성할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 클러스터에 설치되어 있습니다.
-
Knative(
kn
) CLI가 설치되어 있습니다. - 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
프로세스
채널을 생성합니다.
$ kn channel create <channel_name> --type <channel_type>
채널 유형은 선택 사항이지만 지정된 위치는
Group:Version:Kind
형식으로 지정해야 합니다. 예를 들면InMemoryChannel
오브젝트를 생성할 수 있습니다.$ kn channel create mychannel --type messaging.knative.dev:v1:InMemoryChannel
출력 예
Channel 'mychannel' created in namespace 'default'.
검증
채널이 존재하는지 확인하려면 기존 채널을 나열하고 출력을 검사합니다.
$ kn channel list
출력 예
kn channel list NAME TYPE URL AGE READY REASON mychannel InMemoryChannel http://mychannel-kn-channel.default.svc.cluster.local 93s True
채널 삭제
채널을 삭제합니다.
$ kn channel delete <channel_name>
6.2.4. YAML을 사용하여 기본 구현 채널 생성
YAML 파일을 사용하여 Knative 리소스를 생성하면 선언적 API를 사용하므로 선언적 및 재현 가능한 방식으로 채널을 설명할 수 있습니다. YAML을 사용하여 서버리스 채널을 생성하려면 Channel
오브젝트를 정의하는 YAML 파일을 생성한 다음 oc apply
명령을 사용하여 적용해야 합니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 클러스터에 설치되어 있습니다.
-
OpenShift CLI(
oc
)를 설치합니다. - 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
프로세스
Channel
오브젝트를 YAML 파일로 생성합니다.apiVersion: messaging.knative.dev/v1 kind: Channel metadata: name: example-channel namespace: default
YAML 파일을 적용합니다.
$ oc apply -f <filename>
6.2.5. YAML을 사용하여 Apache Kafka의 채널 생성
YAML 파일을 사용하여 Knative 리소스를 생성하면 선언적 API를 사용하므로 선언적 및 재현 가능한 방식으로 채널을 설명할 수 있습니다. Kafka 채널을 생성하여 Kafka 주제에서 지원하는 Knative Eventing 채널을 생성할 수 있습니다. YAML을 사용하여 Kafka 채널을 생성하려면 KafkaChannel
오브젝트를 정의하는 YAML 파일을 생성한 다음 oc apply
명령을 사용하여 적용해야 합니다.
사전 요구 사항
-
OpenShift Serverless Operator, Knative Eventing,
KnativeKafka
사용자 정의 리소스가 OpenShift Container Platform 클러스터에 설치되어 있습니다. -
OpenShift CLI(
oc
)를 설치합니다. - 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
프로세스
KafkaChannel
오브젝트를 YAML 파일로 생성합니다.apiVersion: messaging.knative.dev/v1beta1 kind: KafkaChannel metadata: name: example-channel namespace: default spec: numPartitions: 3 replicationFactor: 1
중요OpenShift Serverless의
KafkaChannel
오브젝트에 대한 API의v1beta1
버전만 지원됩니다. 이 버전은 더 이상 사용되지 않으므로 이 API의v1alpha1
버전을 사용하지 마십시오.KafkaChannel
YAML 파일을 적용합니다.$ oc apply -f <filename>
6.2.6. 다음 단계
- 채널을 생성한 후 싱크 에서 이벤트를 수신할 수 있도록 채널을 싱크에 연결할 수 있습니다.
- 이벤트를 이벤트 싱크로 전달하지 못하는 경우 적용되는 이벤트 전달 매개변수를 구성합니다.