10.2. 고가용성
고가용성(HA)은 중단이 발생하는 경우 API가 작동하도록 하는 데 도움이 되는 Kubernetes API의 표준 기능입니다. HA 배포에서 활성 컨트롤러가 충돌하거나 삭제되면 다른 컨트롤러를 쉽게 사용할 수 있습니다. 이 컨트롤러는 현재 사용할 수 없는 컨트롤러에서 서비스 중인 API의 처리를 대신합니다.
OpenShift Serverless의 HA는 Knative Serving 또는 Eventing 컨트롤 플레인을 설치하면 기본적으로 활성화되는 리더 선택을 통해 사용할 수 있습니다. 리더 선택 HA 패턴을 사용하는 경우에는 요구하기 전에 컨트롤러의 인스턴스가 이미 예약되어 클러스터 내에서 실행됩니다. 이러한 컨트롤러 인스턴스는 리더 선택 잠금이라는 공유 리소스를 사용하기 위해 경쟁합니다. 지정된 시간에 리더 선택 잠금 리소스에 액세스할 수 있는 컨트롤러의 인스턴스를 리더라고 합니다.
OpenShift Serverless의 HA는 Knative Serving 또는 Eventing 컨트롤 플레인을 설치하면 기본적으로 활성화되는 리더 선택을 통해 사용할 수 있습니다. 리더 선택 HA 패턴을 사용하는 경우에는 요구하기 전에 컨트롤러의 인스턴스가 이미 예약되어 클러스터 내에서 실행됩니다. 이러한 컨트롤러 인스턴스는 리더 선택 잠금이라는 공유 리소스를 사용하기 위해 경쟁합니다. 지정된 시간에 리더 선택 잠금 리소스에 액세스할 수 있는 컨트롤러의 인스턴스를 리더라고 합니다.
10.2.1. Knative Eventing의 고가용성 복제본 구성 링크 복사링크가 클립보드에 복사되었습니다!
HA(고가용성)는 기본적으로 Knative Eventing 이벤트ing-controller,
,eventing-
webhookimc-controller
,imc-dispatcher
, mt-broker-controller
구성 요소에 기본적으로 사용할 수 있으며, 기본적으로 두 개의 복제본을 사용하도록 구성됩니다. KnativeEventing
CR(사용자 정의 리소스)의 spec.high-availability.replicas
값을 수정하여 이러한 구성 요소의 복제본 수를 변경할 수 있습니다.
Knative Eventing의 경우 mt-broker-filter
및 mt-broker-ingress
배포는 HA에 의해 확장되지 않습니다. 여러 배포가 필요한 경우 이러한 구성 요소를 수동으로 스케일링합니다.
사전 요구 사항
- OpenShift Container Platform에 대한 클러스터 관리자 권한이 있거나 AWS 또는 OpenShift Dedicated의 Red Hat OpenShift Service에 대한 클러스터 또는 전용 관리자 권한이 있습니다.
- 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의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 워크로드에 대한 복제본 수를 지정할 수도 있습니다.
참고워크로드별 구성은 Knative Eventing의 글로벌 설정을 덮어씁니다.
YAML의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 고가용성 제한이 적용되는지 확인합니다.
명령 예
oc get hpa -n knative-eventing
$ oc get hpa -n knative-eventing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE broker-filter-hpa Deployment/mt-broker-filter 1%/70% 3 12 3 112s broker-ingress-hpa Deployment/mt-broker-ingress 1%/70% 3 12 3 112s eventing-webhook Deployment/eventing-webhook 4%/100% 3 7 3 115s
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE broker-filter-hpa Deployment/mt-broker-filter 1%/70% 3 12 3 112s broker-ingress-hpa Deployment/mt-broker-ingress 1%/70% 3 12 3 112s eventing-webhook Deployment/eventing-webhook 4%/100% 3 7 3 115s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.2. Apache Kafka의 Knative 브로커 구현을 위한 고가용성 복제본 구성 링크 복사링크가 클립보드에 복사되었습니다!
HA(고가용성)는 기본적으로 Apache Kafka 구성 요소 kafka-controller
및 kafka-webhook-eventing
의 Knative 브로커 구현에 사용할 수 있으며 기본적으로 두 개의 복제본이 있도록 구성됩니다. KnativeKafka
CR(사용자 정의 리소스)의 spec.high-availability.replicas
값을 수정하여 이러한 구성 요소의 복제본 수를 변경할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform에 대한 클러스터 관리자 권한이 있거나 AWS 또는 OpenShift Dedicated의 Red Hat OpenShift Service에 대한 클러스터 또는 전용 관리자 권한이 있습니다.
- Apache Kafka용 OpenShift Serverless Operator 및 Knative 브로커가 클러스터에 설치되어 있습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 OperatorHub
설치된 Operator로 이동합니다. -
knative-serving
네임스페이스를 선택합니다. - OpenShift Serverless Operator의 제공되는 API 목록에서 Knative Kafka를 클릭하여 Knative Kafka 탭으로 이동합니다.
knative-kafka를 클릭한 다음 knative-kafka 페이지의 YAML 탭으로 이동합니다.
KnativeKafka
CR의 복제본 수를 수정합니다.YAML의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.3. 중단 예산 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
Pod 중단 예산(PDB)은 유지 관리를 위해 Pod를 다시 예약해야 하는 경우 애플리케이션으로 중단을 제한하는 데 도움이 되는 Kubernetes API의 표준 기능입니다.
프로세스
-
KnativeEventing
CR(사용자 정의 리소스)에서minAvailable
구성 값을 수정하여 특정 리소스에 대한 기본 PDB를 재정의합니다.
minAvailable
설정이 70%인 PDB의 예
high-availability.replicas
값을 1
로 변경하여 고가용성을 비활성화하는 경우 해당 PDB minAvailable
값도 0
으로 업데이트하십시오. 그러지 않으면 Pod 중단 예산에서 자동 클러스터 또는 Operator 업데이트를 방지합니다.