5.9. 이벤트 구성 튜닝
5.9.1. Knative Eventing 시스템 배포 구성 덮어쓰기
KnativeEventing
CR(사용자 정의 리소스)에서 deployments 사양을 수정하여 일부 특정 배포에
대한 기본 구성을 덮어쓸 수 있습니다.
5.9.1.1. 배포 구성 덮어쓰기
현재 eventing-controller
,eventing-webhook
, imc-controller
필드에는 기본 구성 설정을 재정의하고 프로브의 readiness
및 liveness
필드에도 지원됩니다.
replicas
사양은 HPA(Horizond Pod Autoscaler)를 사용하는 배포의 복제본 수를 재정의할 수 없으며 eventing-webhook
배포에 작동하지 않습니다.
다음 예에서 KnativeEventing
CR은 eventing-controller
배포를 재정의하여 다음을 수행합니다.
-
readiness
프로브 시간 초과eventing-controller
가 10초로 설정됩니다. - 배포에 CPU 및 메모리 리소스 제한이 지정되었습니다.
- 배포에는 3개의 복제본이 있습니다.
-
example-label: 레이블
레이블이 추가되었습니다. -
example-annotation: 주석
주석이 추가되었습니다. -
nodeSelector
필드는disktype:d 레이블이
있는 노드를 선택하도록 설정됩니다.
KnativeEventing CR 예
apiVersion: operator.knative.dev/v1beta1
kind: KnativeEventing
metadata:
name: knative-eventing
namespace: knative-eventing
spec:
deployments:
- 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 모두에 대한 배포의 라벨 및 주석을 재정의합니다.
추가 리소스
5.9.2. 고가용성
고가용성(HA)은 중단이 발생하는 경우 API가 작동하도록 하는 데 도움이 되는 Kubernetes API의 표준 기능입니다. HA 배포에서 활성 컨트롤러가 충돌하거나 삭제되면 다른 컨트롤러를 쉽게 사용할 수 있습니다. 이 컨트롤러는 이제 사용할 수 없는 컨트롤러에서 서비스 중인 API를 처리합니다.
OpenShift Serverless의 HA는 Knative Serving 또는 Eventing 컨트롤 플레인을 설치하면 기본적으로 활성화되는 리더 선택을 통해 사용할 수 있습니다. 리더 선택 HA 패턴을 사용하는 경우에는 요구하기 전에 컨트롤러의 인스턴스가 이미 예약되어 클러스터 내에서 실행됩니다. 이러한 컨트롤러 인스턴스는 리더 선택 잠금이라는 공유 리소스를 사용하기 위해 경쟁합니다. 언제든지 리더 선택 잠금 리소스에 액세스할 수 있는 컨트롤러의 인스턴스를 리더라고 합니다.
OpenShift Serverless의 HA는 Knative Serving 또는 Eventing 컨트롤 플레인을 설치하면 기본적으로 활성화되는 리더 선택을 통해 사용할 수 있습니다. 리더 선택 HA 패턴을 사용하는 경우에는 요구하기 전에 컨트롤러의 인스턴스가 이미 예약되어 클러스터 내에서 실행됩니다. 이러한 컨트롤러 인스턴스는 리더 선택 잠금이라는 공유 리소스를 사용하기 위해 경쟁합니다. 언제든지 리더 선택 잠금 리소스에 액세스할 수 있는 컨트롤러의 인스턴스를 리더라고 합니다.
5.9.2.1. Knative Eventing의 고가용성 복제본 구성
HA(고가용성)는 기본적으로 두 개의 복제본을 사용하도록 구성된 Knative Eventing eventing-controller
,eventing-webhook
,imc-controller
,imc-dispatcher
, mt-broker-controller
구성 요소에 대해 기본적으로 사용할 수 있습니다. KnativeEventing
CR(사용자 정의 리소스)의 spec.high-availability.replicas
값을 수정하여 이러한 구성 요소의 복제본 수를 변경할 수 있습니다.
Knative Eventing의 경우 mt-broker-filter
및 mt-broker-ingress
배포는 HA에 의해 확장되지 않습니다. 여러 배포가 필요한 경우 이러한 구성 요소를 수동으로 스케일링합니다.
사전 요구 사항
- 클러스터 관리자 액세스 권한이 있는 OpenShift Container Platform 계정에 액세스할 수 있습니다.
- OpenShift Serverless Operator 및 Knative Eventing이 클러스터에 설치되어 있습니다.
절차
-
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 OperatorHub
설치된 Operator로 이동합니다. -
knative-serving
네임스페이스를 선택합니다. - OpenShift Serverless Operator의 제공되는 API 목록에서 Knative Eventing을 클릭하여 Knative Eventing 탭으로 이동합니다.
knative-eventing을 클릭한 다음 knative-eventing 페이지의 YAML 탭으로 이동합니다.
KnativeEventing
CR의 복제본 수를 수정합니다.YAML의 예
apiVersion: operator.knative.dev/v1beta1 kind: KnativeEventing metadata: name: knative-eventing namespace: knative-eventing spec: high-availability: replicas: 3
5.9.2.2. Knative Kafka의 고가용성 복제본 구성
기본적으로 각 복제본이 두 개로 구성된 Knative Kafka kafka-controller
및 kafka-webhook-eventing
구성 요소에 HA(고가용성)를 사용할 수 있습니다. KnativeKafka
CR(사용자 정의 리소스)의 spec.high-availability.replicas
값을 수정하여 이러한 구성 요소의 복제본 수를 변경할 수 있습니다.
사전 요구 사항
- 클러스터 관리자 액세스 권한이 있는 OpenShift Container Platform 계정에 액세스할 수 있습니다.
- OpenShift Serverless Operator 및 Knative Kafka가 클러스터에 설치되어 있습니다.
절차
-
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 OperatorHub
설치된 Operator로 이동합니다. -
knative-serving
네임스페이스를 선택합니다. - OpenShift Serverless Operator의 제공되는 API 목록에서 Knative Kafka를 클릭하여 Knative Kafka 탭으로 이동합니다.
knative-kafka를 클릭한 다음 knative-kafka 페이지의 YAML 탭으로 이동합니다.
KnativeKafka
CR의 복제본 수를 수정합니다.YAML의 예
apiVersion: operator.serverless.openshift.io/v1alpha1 kind: KnativeKafka metadata: name: knative-kafka namespace: knative-eventing spec: high-availability: replicas: 3