6.4. 웹 후크 승인 플러그인의 유형

클러스터 관리자는 API 서버 승인 체인의 변경 승인 플러그인 또는 검증 승인 플러그인을 통해 웹 후크 서버를 호출할 수 있습니다.

6.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 Dedicated 4에서는 변경 승인 플러그인을 통해 사용자 또는 제어 루프가 생성한 오브젝트는 특히 초기 요청에 설정된 값을 덮어쓰는 경우 예기치 않은 결과를 반환할 수 있습니다. 이는 권장되지 않습니다.

6.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를 사용하면 모든 클라이언트에 대해 예기치 않은 동작이 발생할 수 있습니다.