5.15. Go 기반 Operator의 오브젝트 정리 유틸리티
operator-lib
정리 유틸리티를 사용하면 Go 기반 Operator가 더 이상 필요하지 않은 경우 오브젝트를 정리하거나 정리할 수 있습니다. Operator 작성자는 유틸리티를 사용하여 사용자 정의 후크 및 전략을 생성할 수도 있습니다.
5.15.1. operator-lib 정리 유틸리티 정보 링크 복사링크가 클립보드에 복사되었습니다!
작업 또는 Pod와 같은 오브젝트는 Operator 라이프사이클의 일반 부분으로 생성됩니다. 클러스터 관리자 또는 Operator가 이러한 오브젝트를 제거하지 않으면 클러스터에 남아 있고 리소스를 사용할 수 있습니다.
이전에는 불필요한 오브젝트를 제거하는 데 다음 옵션을 사용할 수 있었습니다.
- Operator 작성자는 Operator에 대한 고유한 정리 솔루션을 생성해야 했습니다.
- 클러스터 관리자는 자체적으로 오브젝트를 정리해야 했습니다.
operator-lib
정리 유틸리티는 지정된 네임스페이스의 Kubernetes 클러스터에서 오브젝트를 제거합니다. 라이브러리는 Operator 프레임워크의 일부로 operator-lib
라이브러리 의 버전 0.9.0
에 추가되었습니다.
5.15.2. 유틸리티 구성 정리 링크 복사링크가 클립보드에 복사되었습니다!
operator-lib
정리 유틸리티는 Go로 작성되며 Go 기반 Operator에 대한 일반적인 정리 전략이 포함되어 있습니다.
설정 예
정리 유틸리티 구성 파일은 다음 필드를 사용하여 정리 작업을 정의합니다.
구성 필드 | Description |
---|---|
| 라이브러리 로그 메시지를 처리하는 데 사용되는 로거입니다. |
|
리소스를 제거해야 하는지 여부를 결정하는 부울 값입니다. |
| Kubernetes API 호출에 사용되는 클라이언트-go Kubernetes ClientSet. |
| 정리할 리소스를 찾는 데 사용되는 Kubernetes 라벨 선택기 표현식입니다. |
|
Kubernetes 리소스 종류입니다. |
| 리소스를 검색할 Kubernetes 네임스페이스 목록입니다. |
| 실행할 전략 정리. |
|
|
|
정리 유틸리티가 실행된 후에도 남아 있어야 하는 리소스 수를 지정하는 |
|
정리할 리소스의 수명을 지정하는 |
| 사용자 정의 전략 함수에 전달할 수 있는 값의 맵을 가져옵니다. |
| 선택 사항: 리소스를 정리하기 전에 호출할 함수로 이동합니다. |
| 선택 사항: 사용자 정의 정리 전략을 구현하는 Go 함수입니다. |
실행 정리
정리 구성에서 실행 기능을 실행하여 정리 작업을 호출할 수 있습니다.
err := cfg.Execute(ctx)
err := cfg.Execute(ctx)
cron 패키지를 사용하거나 트리거 이벤트를 사용하여 정리 유틸리티를 호출하여 정리 작업을 호출할 수도 있습니다.