7.9. CoreDNS 캐시 튜닝
CoreDNS의 경우 각각 양수 또는 음수 캐싱이라고도 하는 성공 또는 실패한 캐싱의 최대 기간을 구성할 수 있습니다. DNS 쿼리 응답의 캐시 기간을 조정하면 업스트림 DNS 확인자의 부하를 줄일 수 있습니다.
TTL 필드를 낮은 값으로 설정하면 클러스터의 부하, 업스트림 확인자 또는 둘 다 증가할 수 있습니다.
프로세스
다음 명령을 실행하여
default라는 DNS Operator 오브젝트를 편집합니다.$ oc edit dns.operator.openshift.io/defaultTTL(Time-to-live) 캐싱 값을 수정합니다.
DNS 캐싱 구성
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: cache: positiveTTL: 1h negativeTTL: 0.5h10m다음과 같습니다.
spec.cache.positiveTTL-
CoreDNS에 의해 해당 시간(초)으로 변환되는 문자열 값을 지정합니다. 이 필드를 생략하면 값이
0s로 간주되고 클러스터는 내부 기본값900s를 폴백으로 사용합니다. spec.cache.negativeTTL-
CoreDNS에 의해 해당 시간(초)으로 변환되는 문자열 값을 지정합니다. 이 필드를 생략하면 값이
0s로 간주되고 클러스터는 내부 기본값30s를 폴백으로 사용합니다.
검증
변경 사항을 검토하려면 다음 명령을 실행하여 구성 맵을 다시 확인합니다.
$ oc get configmap/dns-default -n openshift-dns -o yaml다음 예와 같은 항목이 표시되는지 확인합니다.
cache 3600 { denial 9984 2400 }
7.9.1. DNS Operator managementState 변경 링크 복사링크가 클립보드에 복사되었습니다!
해결 방법을 적용하거나 구성 변경 사항을 테스트하기 위해 DNS Operator가 해당 리소스를 관리하지 못하도록 기본 Managed 상태에서 Unmanaged 로 변경할 수 있습니다.
DNS Operator는 CoreDNS 구성 요소를 관리하여 클러스터의 Pod 및 서비스에 대한 이름 확인 서비스를 제공합니다. DNS Operator의 managementState는 기본적으로 Managed로 설정되어 있으며 이는 DNS Operator가 리소스를 적극적으로 관리하고 있음을 의미합니다. Unmanaged로 변경할 수 있습니다. 이는 DNS Operator가 해당 리소스를 관리하지 않음을 의미합니다.
다음은 DNS Operator managementState를 변경하는 사용 사례입니다.
-
사용자가 개발자이며 구성 변경을 테스트하여 CoreDNS의 문제가 해결되었는지 확인하려고 합니다.
managementState를Unmanaged로 설정하여 DNS Operator가 구성 변경 사항을 덮어쓰지 않도록 할 수 있습니다. -
클러스터 관리자이며 CoreDNS 관련 문제를 보고했지만 문제가 해결될 때까지 해결 방법을 적용해야 합니다. DNS Operator의
managementState필드를Unmanaged로 설정하여 해결 방법을 적용할 수 있습니다.
managementState 가 Unmanaged 로 설정된 동안은 업그레이드할 수 없습니다.
프로세스
다음 명령을 실행하여
managementState를 DNS Operator에서Unmanaged로 변경합니다.oc patch dns.operator.openshift.io default --type merge --patch '{"spec":{"managementState":"Unmanaged"}}'jsonpath명령줄 JSON 구문 분석기를 사용하여 DNS Operator의managementState를 검토합니다.$ oc get dns.operator.openshift.io default -ojsonpath='{.spec.managementState}'