8.3. Webhook 승인 플러그인
OpenShift Container Platform 기본 승인 플러그인 외에도 웹 후크 서버를 호출하는 웹 후크 승인 플러그인을 통해 동적 승인을 구현하여 승인 체인의 기능을 확장할 수 있습니다. 웹 후크 서버는 정의된 엔드포인트에서 HTTP를 통해 호출됩니다.
OpenShift Container Platform에는 다음 두 가지 유형의 웹 후크 승인 플러그인이 있습니다.
- 승인 프로세스 중에 변경 승인 플러그인 은 선호도 레이블 삽입과 같은 작업을 수행할 수 있습니다.
- 승인 프로세스가 끝나면 검증 승인 플러그인을 사용하여 오브젝트가 올바르게 구성되었는지 확인할 수 있습니다(예: 선호도 레이블이 예상대로 있는지 확인). 검증이 통과되면 OpenShift Container Platform에서 구성된 대로 오브젝트를 스케줄링합니다.
API 요청이 입력되면 변경 또는 검증 승인 플러그인이 구성의 외부 웹 후크 목록을 사용하여 병렬로 호출합니다.
- 모든 웹 후크가 요청을 승인하면 승인 체인이 계속됩니다.
- 웹 후크 중 하나라도 요청을 거부하면 승인 요청이 거부됩니다. 그 이유는 첫 번째 거부를 기반으로 합니다.
- 둘 이상의 웹 후크가 승인 요청을 거부하면 첫 번째 거부 이유만 사용자에게 반환됩니다.
-
웹 후크를 호출할 때 오류가 발생하면 오류 정책 세트에 따라 요청이 거부되거나 웹 후크가 무시됩니다. 오류 정책이
Ignore
로 설정되면 실패 시 요청이 무조건 수락됩니다. 정책이Fail
로 설정되면 실패한 요청이 거부됩니다.Ignore
를 사용하면 모든 클라이언트에 대해 예기치 않은 동작이 발생할 수 있습니다.
웹 후크 승인 플러그인과 웹 후크 서버 간 통신은 TLS를 사용해야 합니다. CA 인증서를 생성하고 인증서를 사용하여 웹 후크 승인 서버에서 사용하는 서버 인증서에 서명하십시오. PEM으로 인코딩된 CA 인증서는 서비스 제공 인증서 보안과 같은 메커니즘을 사용하여 웹 후크 승인 플러그인에 제공됩니다.
다음 다이어그램은 여러 웹 후크 서버가 호출되는 순차적 승인 체인 프로세스를 보여줍니다.
그림 8.1. 변경 및 검증 승인 플러그인을 사용하는 API 승인 체인
![API 승인 스테이지](https://access.redhat.com/webassets/avalon/d/OpenShift_Container_Platform-4.11-Architecture-ko-KR/images/e2115419a4f5ded9dcc282b79e84a8b2/api-admission-chain.png)
웹 후크 승인 플러그인 사용 사례의 예는 모든 Pod에 공통 레이블 세트가 있어야 하는 경우입니다. 이 예에서 변경 승인 플러그인은 레이블을 삽입할 수 있으며 검증 승인 플러그인은 레이블이 예상대로 있는지 확인할 수 있습니다. 계속하여 OpenShift Container Platform에서 필요한 레이블이 포함된 포드를 스케줄링하고 그렇지 않은 레이블은 거부합니다.
일반적인 웹 후크 승인 플러그인 사용 사례는 다음과 같습니다.
- 네임스페이스 예약.
- SR-IOV 네트워크 장치 플러그인에서 관리하는 사용자 정의 네트워크 리소스 제한.
- 테인트를 통해 노드에서 스케줄링해야 할 포드를 확인할 수 있는 허용 오차 정의.
- 포드 우선 순위 클래스 검증.
OpenShift Container Platform의 기본 웹 후크 시간 제한 값은 13초이며 변경할 수 없습니다.