10.4. 웹 후크 승인 플러그인의 유형
클러스터 관리자는 API 서버 승인 체인의 변경 승인 플러그인 또는 검증 승인 플러그인을 통해 웹 후크 서버를 호출할 수 있습니다.
10.4.1. 변경 승인 플러그인
변경 승인 플러그인은 승인 프로세스의 변경 단계에서 호출되므로 리소스 콘텐츠가 지속되기 전에 수정할 수 있습니다. 변경 승인 플러그인을 통해 호출할 수 있는 웹 후크의 한 예는 네임스페이스의 주석을 사용하여 라벨 선택기를 찾고 Pod 사양에 추가하는 Pod 노드 선택기 기능입니다.
샘플 변경 승인 플러그인 구성
apiVersion: admissionregistration.k8s.io/v1beta1 kind: MutatingWebhookConfiguration 1 metadata: name: <webhook_name> 2 webhooks: - name: <webhook_name> 3 clientConfig: 4 service: namespace: default 5 name: kubernetes 6 path: <webhook_url> 7 caBundle: <ca_signing_certificate> 8 rules: 9 - operations: 10 - <operation> apiGroups: - "" apiVersions: - "*" resources: - <resource> failurePolicy: <policy> 11 sideEffects: None
- 1
- 변경 승인 플러그인 구성을 지정합니다.
- 2
MutatingWebhookConfiguration
오브젝트의 이름입니다.<webhook_name>
을 적절한 값으로 바꿉니다.- 3
- 호출할 웹 후크의 이름입니다.
<webhook_name>
을 적절한 값으로 바꿉니다. - 4
- 웹 후크 서버에 연결하고 신뢰하고 데이터를 전송하는 방법에 대한 정보입니다.
- 5
- 프런트 엔드 서비스가 생성되는 네임스페이스입니다.
- 6
- 프론트 엔드 서비스의 이름입니다.
- 7
- 승인 요청에 사용되는 웹 후크 URL입니다.
<webhook_url>
을 적절한 값으로 바꿉니다. - 8
- 웹 후크 서버가 사용하는 서버 인증서에 서명하는 PEM 인코딩된 CA 인증서입니다.
<ca_signing_certificate>
를 base64 형식의 적절한 인증서로 바꿉니다. - 9
- API 서버가 이 웹 후크 승인 플러그인을 사용해야 하는 시기를 정의하는 규칙입니다.
- 10
- API 서버가 이 웹 후크 승인 플러그인을 호출하도록 트리거하는 하나 이상의 작업입니다. 가능한 값은
create
,update
,delete
또는connect
입니다.<operation>
및<resource>
를 적절한 값으로 바꿉니다. - 11
- 웹 후크 서버를 사용할 수 없는 경우 정책 진행 방법을 지정합니다.
<policy>
를Ignore
(실패한 경우 요청을 무조건 수락) 또는Fail
(실패한 요청 거부)로 바꿉니다.Ignore
를 사용하면 모든 클라이언트에 대해 예기치 않은 동작이 발생할 수 있습니다.
OpenShift Container Platform 4.15에서는 변경 승인 플러그인을 통해 사용자 또는 제어 루프가 생성한 오브젝트는 특히 초기 요청에 설정된 값을 덮어쓰는 경우 예기치 않은 결과를 반환할 수 있습니다. 이는 권장되지 않습니다.
10.4.2. 검증 승인 플러그인
승인 프로세스의 검증 단계에서 검증 승인 플러그인이 호출됩니다. 이 단계에서는 특정 API 리소스에 대한 변형을 적용하여 리소스가 다시 변경되지 않게 합니다. 포드 노드 선택기는 검증 승인 플러그인에 의해 호출되는 웹 후크의 예이며, 네임스페이스의 노드 선택기 제한에 따라 모든 nodeSelector
필드가 제한되도록 합니다.
샘플 검증 플러그인 구성
apiVersion: admissionregistration.k8s.io/v1beta1 kind: ValidatingWebhookConfiguration 1 metadata: name: <webhook_name> 2 webhooks: - name: <webhook_name> 3 clientConfig: 4 service: namespace: default 5 name: kubernetes 6 path: <webhook_url> 7 caBundle: <ca_signing_certificate> 8 rules: 9 - operations: 10 - <operation> apiGroups: - "" apiVersions: - "*" resources: - <resource> failurePolicy: <policy> 11 sideEffects: Unknown
- 1
- 검증 승인 플러그인 구성을 지정합니다.
- 2
ValidatingWebhookConfiguration
오브젝트의 이름입니다.<webhook_name>
을 적절한 값으로 바꿉니다.- 3
- 호출할 웹 후크의 이름입니다.
<webhook_name>
을 적절한 값으로 바꿉니다. - 4
- 웹 후크 서버에 연결하고 신뢰하고 데이터를 전송하는 방법에 대한 정보입니다.
- 5
- 프런트 엔드 서비스가 생성되는 네임스페이스입니다.
- 6
- 프론트 엔드 서비스의 이름입니다.
- 7
- 승인 요청에 사용되는 웹 후크 URL입니다.
<webhook_url>
을 적절한 값으로 바꿉니다. - 8
- 웹 후크 서버가 사용하는 서버 인증서에 서명하는 PEM 인코딩된 CA 인증서입니다.
<ca_signing_certificate>
를 base64 형식의 적절한 인증서로 바꿉니다. - 9
- API 서버가 이 웹 후크 승인 플러그인을 사용해야 하는 시기를 정의하는 규칙입니다.
- 10
- API 서버가 이 웹 후크 승인 플러그인을 호출하도록 트리거하는 하나 이상의 작업입니다. 가능한 값은
create
,update
,delete
또는connect
입니다.<operation>
및<resource>
를 적절한 값으로 바꿉니다. - 11
- 웹 후크 서버를 사용할 수 없는 경우 정책 진행 방법을 지정합니다.
<policy>
를Ignore
(실패한 경우 요청을 무조건 수락) 또는Fail
(실패한 요청 거부)로 바꿉니다.Ignore
를 사용하면 모든 클라이언트에 대해 예기치 않은 동작이 발생할 수 있습니다.