5.17. Go 기반 Operator의 오브젝트 정리 유틸리티
operator-lib
정리 유틸리티를 사용하면 Go 기반 Operator가 더 이상 필요하지 않을 때 오브젝트를 정리하거나 정리할 수 있습니다. Operator 작성자는 유틸리티를 사용하여 사용자 정의 후크 및 전략을 생성할 수도 있습니다.
Operator 프로젝트의 관련 스캐폴딩 및 테스트 툴을 포함한 Red Hat 지원 버전의 Operator SDK CLI 툴은 더 이상 사용되지 않으며 향후 OpenShift Container Platform 릴리스에서 제거될 예정입니다. Red Hat은 현재 릴리스 라이프사이클 동안 이 기능에 대한 버그 수정 및 지원을 제공하지만 이 기능은 더 이상 개선 사항을 받지 않으며 향후 OpenShift Container Platform 릴리스에서 제거됩니다.
새 Operator 프로젝트를 생성하는 데 Red Hat 지원 버전의 Operator SDK는 권장되지 않습니다. 기존 Operator 프로젝트가 있는 Operator 작성자는 OpenShift Container Platform 4.17과 함께 릴리스된 Operator SDK CLI 툴 버전을 사용하여 프로젝트를 유지 관리하고 최신 버전의 OpenShift Container Platform을 대상으로 하는 Operator 릴리스를 생성할 수 있습니다.
Operator 프로젝트의 다음과 같은 관련 기본 이미지는 더 이상 사용되지 않습니다. 이러한 기본 이미지의 런타임 기능 및 구성 API는 버그 수정 및 CVE 문제를 해결하는 데 계속 지원됩니다.
- Ansible 기반 Operator 프로젝트의 기본 이미지
- Helm 기반 Operator 프로젝트의 기본 이미지
OpenShift Container Platform에서 더 이상 사용되지 않거나 삭제된 주요 기능의 최신 목록은 OpenShift Container Platform 릴리스 노트에서 더 이상 사용되지 않고 삭제된 기능 섹션을 참조하십시오.
지원되지 않는 커뮤니티 유지 관리 버전에 대한 자세한 내용은 Operator SDK(Operator Framework) 를 참조하십시오.
5.17.1. operator-lib 정리 유틸리티 정보 링크 복사링크가 클립보드에 복사되었습니다!
작업 또는 Pod와 같은 오브젝트는 Operator 라이프 사이클의 정상적인 부분으로 생성됩니다. 클러스터 관리자 또는 Operator에서 이러한 오브젝트를 제거하지 않으면 클러스터에 남아 있고 리소스를 사용할 수 있습니다.
이전에는 불필요한 오브젝트를 정리하는 데 다음 옵션을 사용할 수 있었습니다.
- Operator 작성자는 Operator에 고유한 정리 솔루션을 생성해야 했습니다.
- 클러스터 관리자는 오브젝트를 자체적으로 정리해야 했습니다.
operator-lib
정리 유틸리티는 지정된 네임스페이스의 Kubernetes 클러스터에서 오브젝트를 제거합니다. 라이브러리가 Operator 프레임워크의 일부로 operator-lib
라이브러리 의 0.9.0
버전에 추가되었습니다.
5.17.2. 유틸리티 구성 정리 링크 복사링크가 클립보드에 복사되었습니다!
operator-lib
정리 유틸리티는 Go로 작성되며 Go 기반 Operator의 일반적인 정리 전략을 포함합니다.
설정 예
정리 유틸리티 구성 파일은 다음 필드를 사용하여 정리 작업을 정의합니다.
구성 필드 | 설명 |
---|---|
| 라이브러리 로그 메시지를 처리하는 데 사용되는 로거입니다. |
|
리소스를 제거해야 하는지 여부를 결정하는 부울입니다. |
| Kubernetes API 호출에 사용되는 client-go Kubernetes ClientSet. |
| 정리할 리소스를 찾는 데 사용되는 Kubernetes 라벨 선택기 표현식입니다. |
|
Kubernetes 리소스 종류. |
| 리소스를 검색할 Kubernetes 네임스페이스 목록입니다. |
| 실행할 정리 전략입니다. |
|
|
|
정리 유틸리티가 실행된 후에도 남아 있어야 하는 리소스 수를 지정하는 |
|
정리할 리소스의 수명을 지정하는 Go |
| 사용자 지정 전략 함수로 전달할 수 있는 값 맵을 이동합니다. |
| 선택 사항: 리소스를 정리하기 전에 호출하는 기능을 수행합니다. |
| 선택 사항: 사용자 정의 정리 전략을 구현하는 Go 함수입니다. |
실행 정리
정리 구성에서 실행 기능을 실행하여 정리 작업을 호출할 수 있습니다.
err := cfg.Execute(ctx)
err := cfg.Execute(ctx)
cron 패키지를 사용하거나 트리거 이벤트와 함께 정리 유틸리티를 호출하여 정리 작업을 호출할 수도 있습니다.