测验:EnvoyFilter 与 WasmPlugin
한국어 원문으로 표시합니다.
EnvoyFilter 의 applyTo 에 허용되지 않는 값을 적고 적용하면?
- 오브젝트는 만들어지고 해당 패치만 조용히 무시된다
- API 서버가 거절하면서 허용 값 목록을 함께 돌려준다
- istiod 가 다음 설정 배포 때 오류 이벤트를 남긴다
- 프록시가 시작할 때 설정 오류로 죽는다
EnvoyFilter 의 match 조건이 실제 Envoy 설정에서 대상을 찾지 못하면?
- 패치가 적용되지 않고 istiod 가 해당 오브젝트를 거절한다
- 프록시가 설정을 받지 못해 요청이 503 으로 끊긴다
- 분석기가 즉시 오류를 내고 오브젝트가 지워진다
- 아무 일도 일어나지 않는다 — 오류도 이벤트도 없다
istioctl analyze 가 IST0151 로 지적하는 상황은?
- 상대 위치 연산을 쓰면서 priority 를 적지 않은 EnvoyFilter
- workloadSelector 없이 루트 네임스페이스에 둔 EnvoyFilter
- 존재하지 않는 워크로드 라벨을 가리키는 EnvoyFilter
- 이미 지워진 필터를 REMOVE 하려는 EnvoyFilter
EnvoyFilter 를 루트 네임스페이스(기본값 istio-system)에 두면?
- istiod 파드에만 적용되고 워크로드 프록시에는 걸리지 않는다
- 게이트웨이 프록시에만 적용된다
- 메시 전체의 프록시에 걸린다 — 폭발 반경이 가장 크다
- 적용 대상이 없어 경고만 남고 아무 데도 걸리지 않는다
WasmPlugin 이 EnvoyFilter 보다 판올림에 강한 이유는?
- istiod 가 판올림 때 WasmPlugin 을 자동으로 변환해 주기 때문
- WasmPlugin 은 프록시가 아니라 애플리케이션 안에서 실행되기 때문
- WasmPlugin 은 CRD 가 아니라 ConfigMap 이라 스키마 변화가 없기 때문
- Envoy 내부 구조 대신 어느 단계에 끼울지만 적기 때문
jq 로 EnvoyFilter 의 priority 유무를 검사할 때 .spec.priority // "없음" 을 쓰면 생기는 문제는?
- priority 가 0 인 오브젝트가 없는 것으로 분류된다
- priority 가 문자열이면 비교가 항상 참이 된다
- 배열 안의 priority 를 찾지 못해 파싱이 실패한다
- jq 가 오류를 내며 빈 출력을 남긴다