5.17. Go 기반 Operator의 오브젝트 정리 유틸리티
operator-lib
정리 유틸리티를 사용하면 Go 기반 Operator가 더 이상 필요하지 않을 때 오브젝트를 정리하거나 정리할 수 있습니다. Operator 작성자는 유틸리티를 사용하여 사용자 정의 후크 및 전략을 생성할 수도 있습니다.
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 패키지를 사용하거나 트리거 이벤트와 함께 정리 유틸리티를 호출하여 정리 작업을 호출할 수도 있습니다.