4.3. 클러스터에서 Operator 삭제
다음에서는 OpenShift Container Platform 클러스터에서 OLM(Operator Lifecycle Manager)을 사용하여 이전에 설치한 Operator를 삭제하는 방법을 설명합니다.
4.3.1. 웹 콘솔을 사용하여 클러스터에서 Operator 삭제
클러스터 관리자는 웹 콘솔을 사용하여 선택한 네임스페이스에서 설치된 Operator를 삭제할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터 웹 콘솔에 액세스할 수 있습니다.
프로세스
-
Operator
설치된 Operator 페이지에서 스크롤하거나 이름별 필터링에 키워드를 입력하여 원하는 Operator를 찾습니다. 그런 다음 해당 Operator를 클릭합니다. Operator 세부 정보 페이지 오른쪽에 있는 작업 목록에서 Operator 제거를 선택합니다.
Operator를 설치 제거하시겠습니까? 대화 상자가 표시되고 다음 메시지가 표시됩니다.
Operator를 제거해도 사용자 정의 리소스 정의 또는 관리형 리소스는 제거되지 않습니다. Operator에서 클러스터에 애플리케이션을 배포하거나 클러스터 외부 리소스를 구성한 경우 해당 리소스는 계속 실행되며 수동으로 정리해야 합니다.
이 작업은 Operator 및 Operator 배포 및 Pod(있는 경우)를 제거합니다. CRD 및 CR을 포함하여 Operator에서 관리하는 Operand 및 리소스는 제거되지 않습니다. 웹 콘솔에서는 일부 Operator의 대시보드 및 탐색 항목을 활성화합니다. Operator를 설치 제거한 후 해당 항목을 제거하려면 Operator CRD를 수동으로 삭제해야 할 수 있습니다.
- 설치 제거를 선택합니다. 이 Operator는 실행을 중지하고 더 이상 업데이트를 수신하지 않습니다.
4.3.2. CLI를 사용하여 클러스터에서 Operator 삭제
클러스터 관리자는 CLI를 사용하여 선택한 네임스페이스에서 설치된 Operator를 삭제할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. -
oc
명령이 워크스테이션에 설치되어 있습니다.
프로세스
currentCSV
필드에서 구독한 Operator(예:jaeger
)의 현재 버전을 확인합니다.$ oc get subscription jaeger -n openshift-operators -o yaml | grep currentCSV
출력 예
currentCSV: jaeger-operator.v1.8.2
서브스크립션을 삭제합니다(예:
jaeger
).$ oc delete subscription jaeger -n openshift-operators
출력 예
subscription.operators.coreos.com "jaeger" deleted
이전 단계의
currentCSV
값을 사용하여 대상 네임스페이스에서 Operator의 CSV를 삭제합니다.$ oc delete clusterserviceversion jaeger-operator.v1.8.2 -n openshift-operators
출력 예
clusterserviceversion.operators.coreos.com "jaeger-operator.v1.8.2" deleted
4.3.3. 실패한 서브스크립션 새로 고침
OLM(Operator Lifecycle Manager)에서는 네트워크상에서 액세스할 수 없는 이미지를 참조하는 Operator를 구독하는 경우 openshift-marketplace
네임스페이스에 다음 오류로 인해 실패하는 작업을 확인할 수 있습니다.
출력 예
ImagePullBackOff for Back-off pulling image "example.com/openshift4/ose-elasticsearch-operator-bundle@sha256:6d2587129c846ec28d384540322b40b05833e7e00b25cca584e004af9a1d292e"
출력 예
rpc error: code = Unknown desc = error pinging docker registry example.com: Get "https://example.com/v2/": dial tcp: lookup example.com on 10.0.0.1:53: no such host
결과적으로 서브스크립션이 이러한 장애 상태에 고착되어 Operator를 설치하거나 업그레이드할 수 없습니다.
서브스크립션, CSV(클러스터 서비스 버전) 및 기타 관련 오브젝트를 삭제하여 실패한 서브스크립션을 새로 고칠 수 있습니다. 서브스크립션을 다시 생성하면 OLM에서 올바른 버전의 Operator를 다시 설치합니다.
사전 요구 사항
- 액세스할 수 없는 번들 이미지를 가져올 수 없는 실패한 서브스크립션이 있습니다.
- 올바른 번들 이미지에 액세스할 수 있는지 확인했습니다.
프로세스
Operator가 설치된 네임스페이스에서
Subscription
및ClusterServiceVersion
오브젝트의 이름을 가져옵니다.$ oc get sub,csv -n <namespace>
출력 예
NAME PACKAGE SOURCE CHANNEL subscription.operators.coreos.com/elasticsearch-operator elasticsearch-operator redhat-operators 5.0 NAME DISPLAY VERSION REPLACES PHASE clusterserviceversion.operators.coreos.com/elasticsearch-operator.5.0.0-65 OpenShift Elasticsearch Operator 5.0.0-65 Succeeded
서브스크립션을 삭제합니다.
$ oc delete subscription <subscription_name> -n <namespace>
클러스터 서비스 버전을 삭제합니다.
$ oc delete csv <csv_name> -n <namespace>
openshift-marketplace
네임스페이스에서 실패한 모든 작업 및 관련 구성 맵의 이름을 가져옵니다.$ oc get job,configmap -n openshift-marketplace
출력 예
NAME COMPLETIONS DURATION AGE job.batch/1de9443b6324e629ddf31fed0a853a121275806170e34c926d69e53a7fcbccb 1/1 26s 9m30s NAME DATA AGE configmap/1de9443b6324e629ddf31fed0a853a121275806170e34c926d69e53a7fcbccb 3 9m30s
작업을 삭제합니다.
$ oc delete job <job_name> -n openshift-marketplace
이렇게 하면 액세스할 수 없는 이미지를 가져오려는 Pod가 다시 생성되지 않습니다.
구성 맵을 삭제합니다.
$ oc delete configmap <configmap_name> -n openshift-marketplace
- 웹 콘솔에서 OperatorHub를 사용하여 Operator를 다시 설치합니다.
검증
Operator가 제대로 다시 설치되었는지 확인합니다.
$ oc get sub,csv,installplan -n <namespace>