10.5. 동적 승인 구성
이 절차에서는 동적 승인을 구성하기 위한 고급 단계를 간략하게 설명합니다. 승인 체인의 기능은 웹 후크 서버를 호출하도록 웹 후크 승인 플러그인을 구성하여 확장합니다.
웹 후크 서버는 집계 API 서버로도 구성됩니다. 그러면 다른 OpenShift Container Platform 구성 요소가 내부 인증서를 사용하여 웹 후크와 통신하고 oc
명령을 사용하여 테스트를 용이하게 합니다. 또한 웹 후크에 대한 역할 기반 액세스 제어(RBAC)를 가능하게 하고 다른 API 서버의 토큰 정보가 웹 후크에 공개되는 것을 방지합니다.
전제 조건
- 클러스터 관리자 액세스 권한이 있는 OpenShift Container Platform 계정.
-
OpenShift Container Platform CLI(
oc
)가 설치됨. - 게시된 웹 후크 서버 컨테이너 이미지.
절차
- 웹 후크 서버 컨테이너 이미지를 빌드하고 이미지 레지스트리를 사용하여 클러스터에서 사용 가능하게 합니다.
- 로컬 CA 키 및 인증서를 작성한 다음 웹 후크 서버의 인증서 서명 요청(CSR)에 서명하는 데 사용합니다.
웹 후크 리소스에 맞는 새 프로젝트를 생성합니다.
oc new-project my-webhook-namespace
$ oc new-project my-webhook-namespace
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 웹 후크 서버에서 특정 이름을 기대할 수 있습니다.
rbac.yaml
이라는 파일에서 집계된 API 서비스의 RBAC 규칙을 정의합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 인증 및 권한 부여를 웹 후크 서버 API에 위임합니다.
- 2
- 웹 후크 서버가 클러스터 리소스에 액세스할 수 있게 합니다.
- 3
- 리소스를 가리킵니다. 이 예는
namespacereservations
리소스를 가리킵니다. - 4
- 집계된 API 서버를 사용하여 승인 검토를 작성할 수 있습니다.
- 5
- 리소스를 가리킵니다. 이 예는
namespacereservations
리소스를 가리킵니다. - 6
- 웹 후크 서버를 사용하여 클러스터 리소스에 액세스할 수 있습니다.
- 7
- 인증 종료 구성을 읽기 위한 역할 바인딩.
- 8
- 집계된 API 서버의 기본 클러스터 역할 및 클러스터 역할 바인딩.
해당 RBAC 규칙을 클러스터에 적용합니다.
oc auth reconcile -f rbac.yaml
$ oc auth reconcile -f rbac.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 네임스페이스에서 웹 후크를 데몬 세트 서버로 배포하는 데 사용되는
webhook-daemonset.yaml
이라는 YAML 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데몬 세트를 배포합니다.
oc apply -f webhook-daemonset.yaml
$ oc apply -f webhook-daemonset.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow webhook-secret.yaml
이라는 YAML 파일 내에서 서비스 제공 인증서 서명자의 시크릿을 정의합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시크릿을 생성합니다.
oc apply -f webhook-secret.yaml
$ oc apply -f webhook-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow webhook-service.yaml
이라는 YAML 파일 내에서 서비스 계정 및 서비스를 정의합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 내에 웹 후크 서버를 노출합니다.
oc apply -f webhook-service.yaml
$ oc apply -f webhook-service.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow webhook-crd.yaml
이라는 파일에서 웹 후크 서버의 사용자 정의 리소스 정의를 정의합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 정의 리소스 정의를 적용합니다.
oc apply -f webhook-crd.yaml
$ oc apply -f webhook-crd.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow webhook-api-service.yaml
이라는 파일 내에서 웹 후크 서버를 집계 API 서버로 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 웹 후크 서버가 사용하는 서버 인증서에 서명하는 PEM 인코딩된 CA 인증서입니다.
<ca_signing_certificate>
를 base64 형식의 적절한 인증서로 바꿉니다.
집계된 API 서비스를 배포합니다.
oc apply -f webhook-api-service.yaml
$ oc apply -f webhook-api-service.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow webhook-config.yaml
이라는 파일 내에 웹 후크 승인 플러그인 구성을 정의합니다. 이 예에서는 검증 승인 플러그인을 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ValidatingWebhookConfiguration
개체의 이름입니다. 이 예에서는namespacereservations
리소스를 사용합니다.- 2
- 호출할 웹 후크의 이름입니다. 이 예에서는
namespacereservations
리소스를 사용합니다. - 3
- 집계된 API를 통해 웹 후크 서버에 액세스할 수 있습니다.
- 4
- 승인 요청에 사용되는 웹 후크 URL입니다. 이 예에서는
namespacereservation
리소스를 사용합니다. - 5
- 웹 후크 서버가 사용하는 서버 인증서에 서명하는 PEM 인코딩된 CA 인증서입니다.
<ca_signing_certificate>
를 base64 형식의 적절한 인증서로 바꿉니다.
웹 후크를 배포합니다.
oc apply -f webhook-config.yaml
$ oc apply -f webhook-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 웹 후크가 예상대로 작동하는지 확인합니다. 예를 들어 특정 네임스페이스를 예약하기 위해 동적 승인을 구성한 경우 해당 네임스페이스를 생성하는 요청이 거부되고 예약되지 않은 네임스페이스를 생성하는 요청이 성공했는지 확인합니다.