8.3. 관리자 화면의 서버리스 구성 요소
OpenShift Container Platform 웹 콘솔에서 개발자 화면으로 전환하거나 Knative(kn
) CLI 또는 YAML 파일을 사용하려면 OpenShift Container Platform 웹 콘솔의 Administator 관점을 사용하여 Knative 구성 요소를 생성할 수 있습니다.
8.3.1. 관리자 화면을 사용하여 서버리스 애플리케이션 생성
서버리스 애플리케이션은 경로 및 구성으로 정의되고 YAML 파일에 포함된 Kubernetes 서비스로 생성 및 배포됩니다. OpenShift Serverless를 사용하여 서버리스 애플리케이션을 배포하려면 Knative Service
오브젝트를 생성해야 합니다.
Knative Service
오브젝트 YAML 파일의 예
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: hello 1 namespace: default 2 spec: template: spec: containers: - image: docker.io/openshift/hello-openshift 3 env: - name: RESPONSE 4 value: "Hello Serverless!"
서비스가 생성되고 애플리케이션이 배포되면 Knative에서 이 버전의 애플리케이션에 대해 변경할 수 없는 버전을 생성합니다. Knative는 또한 네트워크 프로그래밍을 수행하여 애플리케이션의 경로, 수신, 서비스 및 로드 밸런서를 생성하고 트래픽에 따라 Pod를 자동으로 확장합니다.
사전 요구 사항
관리자 화면을 사용하여 서버리스 애플리케이션을 생성하려면 다음 단계를 완료해야 합니다.
- OpenShift Serverless Operator 및 Knative Serving이 설치되어 있습니다.
- 웹 콘솔에 로그인한 후 관리자 화면에 있습니다.
프로세스
-
Serverless
Serving 페이지로 이동합니다. - 생성 목록에서 서비스를 선택합니다.
- YAML 또는 JSON 정의를 수동으로 입력하거나 파일을 편집기로 끌어서 놓습니다.
- 생성을 클릭합니다.
8.3.2. 관리자 화면을 사용하여 이벤트 소스 생성
Knative 이벤트 소스 는 클라우드 이벤트를 생성하거나 가져오는 모든 Kubernetes 오브젝트일 수 있으며 이러한 이벤트를 싱크 라는 다른 끝점으로 릴레이할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
- 웹 콘솔에 로그인한 후 관리자 화면에 있습니다.
- OpenShift Container Platform에 대한 클러스터 관리자 권한이 있습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 Serverless
Eventing으로 이동합니다. - 생성 목록에서 이벤트 소스를 선택합니다. 그러면 이벤트 소스 페이지로 이동합니다.
- 생성할 이벤트 소스 유형을 선택합니다.
8.3.3. 관리자 화면을 사용하여 사용자 정의 도메인을 서비스에 매핑
Knative 서비스에는 클러스터 구성에 따라 기본 도메인 이름이 자동으로 할당됩니다. 예를 들면 < ;service_name>-<namespace>.example.com
입니다. 보유한 사용자 정의 도메인 이름을 Knative 서비스에 매핑하여 Knative 서비스의 도메인을 사용자 지정할 수 있습니다.
서비스에 대한 DomainMapping
리소스를 생성하여 이 작업을 수행할 수 있습니다. 또한 여러 개의 DomainMapping
리소스를 생성하여 여러 도메인에 매핑하고 하위 도메인을 단일 서비스에 매핑할 수도 있습니다.
클러스터 관리자 권한이 있는 경우 OpenShift Container Platform 웹 콘솔의 관리자 화면을 사용하여 DomainMapping
CR(사용자 정의 리소스)을 생성할 수 있습니다.
사전 요구 사항
- 웹 콘솔에 로그인했습니다.
- 관리자 화면에 있습니다.
- OpenShift Serverless Operator를 설치했습니다.
- Knative Serving이 설치되어 있습니다.
- 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
Knative 서비스를 생성했으며 해당 서비스에 매핑할 사용자 정의 도메인을 제어할 수 있습니다.
참고사용자 정의 도메인에서 OpenShift Container Platform 클러스터의 IP 주소를 참조해야 합니다.
절차
- CustomResourceDefinitions 로 이동하여 검색 상자를 사용하여 DomainMapping CRD(사용자 정의 리소스 정의)를 찾습니다.
- DomainMapping CRD를 클릭한 다음 Instances (인스턴스) 탭으로 이동합니다.
- Create DomainMapping 을 클릭합니다.
인스턴스에 대한 다음 정보를 포함하도록
DomainMapping
CR의 YAML을 수정합니다.apiVersion: serving.knative.dev/v1alpha1 kind: DomainMapping metadata: name: <domain_name> 1 namespace: <namespace> 2 spec: ref: name: <target_name> 3 kind: <target_type> 4 apiVersion: serving.knative.dev/v1
Knative 서비스에 대한 도메인 매핑 예
apiVersion: serving.knative.dev/v1alpha1 kind: DomainMapping metadata: name: custom-ksvc-domain.example.com namespace: default spec: ref: name: example-service kind: Service apiVersion: serving.knative.dev/v1
검증
curl
요청을 사용하여 사용자 정의 도메인에 액세스합니다. 예를 들면 다음과 같습니다.명령 예
$ curl custom-ksvc-domain.example.com
출력 예
Hello OpenShift!
8.3.4. 관리자 화면을 사용하여 트리거 생성
브로커는 트리거와 함께 이벤트 소스에서 이벤트 싱크로 이벤트를 전달하는 데 사용할 수 있습니다. 이벤트는 HTTP POST
요청으로 이벤트 소스에서 브로커로 전송됩니다. 이벤트가 브로커에 진입하면 트리거를 사용하여 CloudEvent 속성으로 필터링하고 이벤트 싱크에 HTTP POST
요청으로 전송할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
- 웹 콘솔에 로그인한 후 관리자 화면에 있습니다.
- OpenShift Container Platform에 대한 클러스터 관리자 권한이 있습니다.
- Knative 브로커를 생성했습니다.
- 구독자로 사용할 Knative 서비스를 생성했습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 Serverless
Eventing으로 이동합니다. - 브로커 탭에서 트리거를 추가할 브로커의 옵션 메뉴 를 선택합니다.
- 목록에서 트리거 추가를 클릭합니다.
- 트리거 추가 대화 상자에서 트리거에 대한 구독자를 선택합니다. 구독자는 브로커에서 이벤트를 수신하는 Knative 서비스입니다.
- 추가를 클릭합니다.
8.3.5. 관리자 화면을 사용하여 채널 생성
채널은 단일 이벤트 전달 및 지속성 계층을 정의하는 사용자 정의 리소스입니다. 이벤트 소스 또는 생산자의 채널로 이벤트가 전송되면 서브스크립션을 사용하여 이러한 이벤트를 여러 Knative 서비스 또는 기타 싱크로 보낼 수 있습니다.
지원되는 Channel
오브젝트를 인스턴스화하여 채널을 생성하고 Subscription
오브젝트에서 delivery
사양을 수정하여 재전송 시도 횟수를 구성할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
- 웹 콘솔에 로그인한 후 관리자 화면에 있습니다.
- OpenShift Container Platform에 대한 클러스터 관리자 권한이 있습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 Serverless
Eventing으로 이동합니다. - 생성 목록에서 채널을 선택합니다. 그러면 채널 페이지로 이동합니다.
유형 목록에서 생성할
Channel
오브젝트 유형을 선택합니다.참고현재
InMemoryChannel
채널 오브젝트만 기본적으로 지원됩니다. OpenShift Serverless에 Knative Kafka를 설치한 경우 Kafka 채널을 사용할 수 있습니다.- 생성을 클릭합니다.
8.3.6. 관리자 화면을 사용하여 서브스크립션 생성
채널과 구독자 라고도 하는 이벤트 싱크를 생성한 후에는 서브스크립션을 생성하여 이벤트 전달을 활성화할 수 있습니다. 서브스크립션은 이벤트를 전달할 채널과 구독자를 지정하는 Subscription
오브젝트를 구성하여 생성합니다. 또한 오류를 처리하는 방법과 같은 몇 가지 구독자별 옵션을 지정할 수도 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing이 OpenShift Container Platform 클러스터에 설치되어 있습니다.
- 웹 콘솔에 로그인한 후 관리자 화면에 있습니다.
- OpenShift Container Platform에 대한 클러스터 관리자 권한이 있습니다.
- Knative 채널을 생성했습니다.
- 구독자로 사용할 Knative 서비스를 생성했습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 Serverless
Eventing으로 이동합니다. - 채널 탭에서 서브스크립션을 추가할 채널의 옵션 메뉴 를 선택합니다.
- 목록에서 서브스크립션 추가를 클릭합니다.
- 서브스크립션 추가 대화 상자에서 서브스크립션에 대한 구독자를 선택합니다. 구독자는 채널에서 이벤트를 수신하는 Knative 서비스입니다.
- 추가를 클릭합니다.