Kubernetes 1.11を実行していて、まずローカルネームサーバーをチェックするようにKubernetesクラスターを構成しようとしています。 CoreDNSをカスタマイズするためのKubernetesサイトの説明を読み、ダッシュボードを使用してCoreDNSのシステムConfigMapを編集しました。結果のコアファイル値は次のとおりです。
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
upstream 192.168.1.3 209.18.47.61
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
proxy . /etc/resolv.conf
cache 30
reload
}
ローカルアドレスを最初のアップストリームネームサーバーとして表示できます。私の問題は、これが影響を与えていないようだということです。 pingとnslookupで実行しているコンテナがありますが、どちらもローカルネームサーバーの名前を解決しません。
当面は、ネームサーバーの構成を必要とするいくつかのポッド仕様でネームサーバー構成を指定することで問題を回避しましたが、この回避策は好きではありません。
変更されたConfigMapに基づいてCoreDNSを強制的に更新するにはどうすればよいですか? kube-system名前空間でのデプロイメントであることがわかりますが、それをリロードしたり、変更された構成に応答したりする方法に関するドキュメントは見つかりませんでした。
コマンドラインで編集できます:
kubectl edit cm coredns -n kube-system
保存して終了すると、リロードされます。
それがリロードしない場合は、Emruz Hossainがcorednsを削除するようにアドバイスしたように:
kubectl get pods -n kube-system -oname |grep coredns |xargs kubectl delete -n kube-system