Kubernetes에 저장된 CoreDNS 구성은 어디에 있습니까?

Kubernetes에 저장된 CoreDNS 구성은 어디에 있습니까?

나는 최근 kubeadm을 사용하여 설치한 클러스터에서 CoreDNS를 조사하고 있었습니다. 기본적으로 2개의 복제본이 배포되어 있는 것을 확인했습니다. 하지만 더 원하는 경우 어떻게 해야 합니까? 확장할 수 있다는 것을 알고 있지만 이는 수행하고 싶지 않은 추가 단계입니다. 생성된 모든 새 클러스터에 HA용 CoreDNS가 3개(마스터가 3개 있으므로) 포함되도록 하고 싶습니다. 하지만 kubeadm이 사용하는 매니페스트가 어디에 저장되어 있는지에 대한 정보를 찾을 수 없습니다.

또한 포드에 대한 포드 반선호도 규칙을 설정하고 싶습니다.

CoreDNS configmap을 구성하고 싶을 수도 있습니다.

kubeadm이 CoreDNS를 설치하고 구성하는 데 사용하는 구성은 어디에 저장되어 있나요?

답변1

CoreDNS의 구성은 Manifest.go 파일에 하드 코딩되어 있습니다.https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/phases/addons/dns/manifests.go#L59

따라서 사용자 정의를 원할 경우 kubeadm 브랜치를 포크하고 직접 빌드할 수 있습니다.

답변2

이런 방식으로 CoreDNS의 구성을 확인할 수 있습니다.

kubectl describe configmap coredns  -n=kube-system 

산출:

Name:         coredns
Namespace:    kube-system
Labels:       <none>
Annotations:  <none>

Data
====
Corefile:
----
.:53 {
    errors
    health {
       lameduck 5s
    }
    ready
    kubernetes cluster.local in-addr.arpa ip6.arpa {
       pods insecure
       fallthrough in-addr.arpa ip6.arpa
       ttl 30
    }
    prometheus :9153
    forward . /etc/resolv.conf {
       max_concurrent 1000
    }
    cache 30
    loop
    reload
    loadbalance
}


BinaryData
====

Events:  <none>

이 ConfigMap은 어떻게 적용되나요?

  1. CoreDNS는 2개의 복제본이 있는 배포에서 정의됩니다.
  2. configmap은 컨테이너에 볼륨으로 마운트됩니다.

이 배포의 정의는 다음과 같습니다.

kubectl describe deployment coredns -n=kube-system

여기에 이미지 설명을 입력하세요

참조

관련 정보