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 탭으로 이동합니다.
KnativeServingCR의 복제본 수를 수정합니다.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의 표준 기능입니다.
프로세스
-
KnativeServingCR(사용자 정의 리소스)에서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 업데이트를 방지합니다.