KCA — Kyverno 인증 어소시에이트 · mutate 와 generate · 퀴즈
퀴즈: mutate 와 generate
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
네임스페이스를 만들었는데 generate 규칙이 만들어야 할 NetworkPolicy 가 보이지 않는다. 진단의 첫 갈래로 가장 효율적인 것은?
- 정책 YAML 의 들여쓰기와 필드 이름을 처음부터 한 줄씩 다시 읽어 오타가 없는지 확인한다
- admission 컨트롤러를 재시작한다
- 웹훅 타임아웃을 늘린다
- kyverno 네임스페이스의 UpdateRequest 를 본다. 비어 있으면 match 실패, 있는데 리소스가 없으면 background 컨트롤러 쪽 문제다
background 컨트롤러에 대상 리소스 생성 권한이 없을 때 나타나는 증상은?
- kubectl apply 가 즉시 거부된다
- admission 은 성공하고 리소스만 조용히 생기지 않는다
- 웹훅 타임아웃 오류가 발생한다
- 정책이 로드되지 않아 목록에 나타나지 않는다
`kca.io/owner` 어노테이션을 patchesJson6902 로 추가할 때 올바른 path 는?
- /metadata/annotations/kca.io/owner
- /metadata/annotations/kca.io~1owner
- /metadata/annotations[kca.io/owner]
- metadata.annotations.kca.io/owner
generate 에 synchronize: true 를 켤 때의 비용으로 옳은 것은?
- admission 웹훅의 응답 시간이 두 배가 된다
- 대상 네임스페이스 수만큼 감시와 쓰기가 늘어 background 컨트롤러의 상시 부하가 된다
- 정책이 Enforce 모드로 강제 전환된다
- PolicyReport 가 생성되지 않는다
mutate 로 값을 넣는 것의 운영상 반대급부로 가장 정확한 지적은?
- mutate 는 Deployment 에만 적용할 수 있다
- mutate 는 validate 보다 나중에 실행되어 검사 대상이 아니다
- 넣은 값이 Git 에 보이지 않아 리뷰·롤백 대상에서 빠지고, 매니페스트와 실제 오브젝트가 달라 GitOps 도구의 드리프트 감지와 충돌한다
- mutate 는 background 컨트롤러에서만 동작한다
patchStrategicMerge 와 patchesJson6902 의 차이로 옳은 것은?
- 전자는 생성에, 후자는 삭제에만 쓴다
- 후자만 foreach 와 함께 쓸 수 있다
- 전자는 쿠버네티스 전략적 병합이라 배열을 이름 키로 병합하고, 후자는 op/path/value 로 정확한 위치를 지목한다
- 전자는 Kyverno 전용 문법이고 후자는 쿠버네티스 표준이 아니다