8.5.2.2. CLI를 사용하여 Cluster Resource Override Operator 설치
OpenShift CLI를 사용하여 Cluster Resource Override Operator를 설치하여 클러스터의 오버 커밋을 제어할 수 있습니다.
기본적으로 설치 프로세스는 clusterresourceoverride-operator 네임스페이스의 작업자 노드에 Cluster Resource Override Operator Pod를 생성합니다. 필요에 따라 이 Pod를 인프라 노드와 같은 다른 노드로 이동할 수 있습니다. 인프라 노드는 환경을 실행하는 데 필요한 총 서브스크립션 수에 포함되지 않습니다. 자세한 내용은 "Cluster Resource Override Operator Pod"를 참조하십시오.
사전 요구 사항
-
컨테이너에 제한이 설정되어 있지 않은 경우 Cluster Resource Override Operator에 영향을 주지 않습니다. 덮어쓰기를 적용하려면
LimitRange오브젝트를 사용하여 프로젝트의 기본 제한을 지정하거나Pod사양에 제한을 구성해야 합니다.
프로세스
Cluster Resource Override Operator의 네임스페이스를 생성합니다.
Cluster Resource Override Operator의
Namespace오브젝트 YAML 파일(예:cro-namespace.yaml)을 생성합니다.apiVersion: v1 kind: Namespace metadata: name: clusterresourceoverride-operator네임스페이스를 생성합니다.
$ oc create -f <file-name>.yaml예를 들면 다음과 같습니다.
$ oc create -f cro-namespace.yaml
Operator 그룹을 생성합니다.
Cluster Resource Override Operator의
OperatorGroup오브젝트 YAML 파일(예: cro-og.yaml)을 생성합니다.apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: clusterresourceoverride-operator namespace: clusterresourceoverride-operator spec: targetNamespaces: - clusterresourceoverride-operatorOperator 그룹을 생성합니다.
$ oc create -f <file-name>.yaml예를 들면 다음과 같습니다.
$ oc create -f cro-og.yaml
서브스크립션을 생성합니다.
Cluster Resource Override Operator의
Subscription오브젝트 YAML 파일(예: cro-sub.yaml)을 생성합니다.apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: clusterresourceoverride namespace: clusterresourceoverride-operator spec: channel: "stable" name: clusterresourceoverride source: redhat-operators sourceNamespace: openshift-marketplace서브스크립션을 생성합니다.
$ oc create -f <file-name>.yaml예를 들면 다음과 같습니다.
$ oc create -f cro-sub.yaml
clusterresourceoverride-operator네임 스페이스에서ClusterResourceOverride사용자 지정 리소스 (CR) 오브젝트를 만듭니다.clusterresourceoverride-operator네임 스페이스로 변경합니다.$ oc project clusterresourceoverride-operatorCluster Resource Override Operator의
ClusterResourceOverride오브젝트 YAML 파일 (예: cro-cr.yaml)을 만듭니다.apiVersion: operator.autoscaling.openshift.io/v1 kind: ClusterResourceOverride metadata: name: cluster spec: podResourceOverride: spec: memoryRequestToLimitPercent: 50 cpuRequestToLimitPercent: 25 limitCPUToMemoryPercent: 200다음과 같습니다.
metadata.name-
CR의 이름을 지정합니다. 이름은
instance이어야 합니다. spec.podResourceOverride.spec.memoryRequestToLimitPercent-
컨테이너 메모리 제한을 덮어 쓰기하는 경우 1-100 사이의 백분율을 지정합니다. 기본값은
50입니다. 이 매개변수는 선택 사항입니다. spec.podResourceOverride.spec.cpuRequestToLimitPercent-
컨테이너 CPU 제한을 덮어 쓰기하는 경우 1-100 사이의 백분율을 지정합니다. 기본값은
25입니다. 이 매개변수는 선택 사항입니다. spec.podResourceOverride.spec.limitCPUToMemoryPercent-
컨테이너 메모리 제한을 재정의할 백분율(사용되는 경우)을 지정합니다. 1Gi의 RAM을 100%로 스케일링하는 것은 CPU 코어 1개와 같습니다. CPU 요청을 재정의하기 전에 처리됩니다(설정된 경우). 기본값은
200입니다. 이 매개변수는 선택 사항입니다.
ClusterResourceOverride오브젝트를 만듭니다.$ oc create -f <file-name>.yaml예를 들면 다음과 같습니다.
$ oc create -f cro-cr.yaml
클러스터 사용자 정의 리소스의 상태를 확인하여 승인 Webhook의 현재 상태를 확인합니다.
$ oc get clusterresourceoverride cluster -n clusterresourceoverride-operator -o yamlWebhook가 호출될 때
mutatingWebhookConfigurationRef섹션이 표시됩니다.출력 예
apiVersion: operator.autoscaling.openshift.io/v1 kind: ClusterResourceOverride metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"operator.autoscaling.openshift.io/v1","kind":"ClusterResourceOverride","metadata":{"annotations":{},"name":"cluster"},"spec":{"podResourceOverride":{"spec":{"cpuRequestToLimitPercent":25,"limitCPUToMemoryPercent":200,"memoryRequestToLimitPercent":50}}}} creationTimestamp: "2019-12-18T22:35:02Z" generation: 1 name: cluster resourceVersion: "127622" selfLink: /apis/operator.autoscaling.openshift.io/v1/clusterresourceoverrides/cluster uid: 978fc959-1717-4bd1-97d0-ae00ee111e8d spec: podResourceOverride: spec: cpuRequestToLimitPercent: 25 limitCPUToMemoryPercent: 200 memoryRequestToLimitPercent: 50 status: # ... mutatingWebhookConfigurationRef: apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration name: clusterresourceoverrides.admission.autoscaling.openshift.io resourceVersion: "127621" uid: 98b3b8ae-d5ce-462b-8ab5-a729ea8f38f3 # ...다음과 같습니다.
status.mutatingWebhookConfigurationRef-
ClusterResourceOverride승인 Webhook를 지정합니다.