
나는 최근 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은 어떻게 적용되나요?
- CoreDNS는 2개의 복제본이 있는 배포에서 정의됩니다.
- configmap은 컨테이너에 볼륨으로 마운트됩니다.
이 배포의 정의는 다음과 같습니다.
kubectl describe deployment coredns -n=kube-system