15.2. Knative 배포를 위한 고가용성
HA(고가용성)는 Knative Serving activator
, autoscaler ,
,autoscaler
-hpacontroller
,webhook
,domainmapping ,
,domainmapping-
webhookkourier-control
, kourier-gateway
구성 요소에 각각 두 개의 복제본을 갖도록 구성되어 있습니다. KnativeServing
CR(사용자 정의 리소스)의 spec.high-availability.replicas
값을 수정하여 이러한 구성 요소의 복제본 수를 변경할 수 있습니다.
15.2.1. Knative Serving의 고가용성 복제본 구성
적합한 배포 리소스에 대해 최소 복제본 3개를 지정하려면 사용자 정의 리소스의 spec.high-availability.replicas
필드 값을 3
으로 설정합니다.
사전 요구 사항
- OpenShift Container Platform에 대한 클러스터 관리자 권한이 있거나 AWS 또는 OpenShift Dedicated의 Red Hat OpenShift Service에 대한 클러스터 또는 전용 관리자 권한이 있습니다.
- OpenShift Serverless Operator 및 Knative Serving이 클러스터에 설치되어 있습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 OperatorHub
설치된 Operator로 이동합니다. -
knative-serving
네임스페이스를 선택합니다. - OpenShift Serverless Operator의 제공되는 API 목록에서 Knative Serving을 클릭하여 Knative Serving 탭으로 이동합니다.
knative-serving을 클릭한 다음 knative-serving 페이지의 YAML 탭으로 이동합니다.
KnativeServing
CR의 복제본 수를 수정합니다.YAML의 예
apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: high-availability: replicas: 3
특정 워크로드에 대한 복제본 수를 지정할 수도 있습니다.
참고워크로드별 구성이 Knative Serving의 글로벌 설정을 덮어씁니다.
YAML의 예
apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: high-availability: replicas: 3 workloads: - name: webhook replicas: 4
고가용성 제한이 적용되는지 확인합니다.
명령 예
$ oc get hpa -n knative-serving
출력 예
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE activator Deployment/activator 0%/100% 3 22 3 2m24s webhook Deployment/webhook 2%/100% 4 8 4 2m23s
15.2.2. 중단 예산 덮어쓰기
Pod 중단 예산(PDB)은 유지 관리를 위해 Pod를 다시 예약해야 하는 경우 애플리케이션으로 중단을 제한하는 데 도움이 되는 Kubernetes API의 표준 기능입니다.
프로세스
-
KnativeServing
CR(사용자 정의 리소스)에서minAvailable
구성 값을 수정하여 특정 리소스에 대한 기본 PDB를 재정의합니다.
minAvailable
설정이 70%인 PDB의 예
apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: podDisruptionBudgets: - name: activator-pdb minAvailable: 70%
high-availability.replicas
값을 1
로 변경하여 고가용성을 비활성화하는 경우 해당 PDB minAvailable
값도 0
으로 업데이트하십시오. 그러지 않으면 Pod 중단 예산에서 자동 클러스터 또는 Operator 업데이트를 방지합니다.