Kubeadm: coredns CrashLoopBackOff karena dnsmasq

Dibuat pada 2 Des 2018  ·  44Komentar  ·  Sumber: kubernetes/kubeadm

Kata kunci apa yang Anda cari di masalah kubeadm sebelum mengajukan yang ini?

Ubuntu 16.04 memberi inti crashloopbackoff

Apakah ini LAPORAN BUG atau PERMINTAAN FITUR?

LAPORAN BUG

Versi

versi kubeadm (gunakan kubeadm version ):

root@k8s-master:~# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.3", GitCommit:"435f92c719f279a3a67808c80521ea17d5715c66", GitTreeState:"clean", BuildDate:"2018-11-26T12:54:02Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"}

Lingkungan :

  • Versi Kubernetes (gunakan kubectl version ):
root@k8s-master:~# kubectl version
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.3", GitCommit:"435f92c719f279a3a67808c80521ea17d5715c66", GitTreeState:"clean", BuildDate:"2018-11-26T12:57:14Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.3", GitCommit:"435f92c719f279a3a67808c80521ea17d5715c66", GitTreeState:"clean", BuildDate:"2018-11-26T12:46:57Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"}
  • Penyedia cloud atau konfigurasi perangkat keras :
    Local Virtual Machine, 2 CPU, 4 GB RAM

  • OS (misalnya dari / etc / os-release):

root@k8s-master:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:    16.04
Codename:   xenial

  • Kernel (misalnya uname -a ):
root@k8s-master:~# uname -a
Linux k8s-master 4.15.0-29-generic #31~16.04.1-Ubuntu SMP Wed Jul 18 08:54:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • Lainnya :
root@k8s-master:~# docker --version
Docker version 18.06.0-ce, build 0ffa825

root@k8s-master:~# sestatus
The program 'sestatus' is currently not installed. You can install it by typing:
apt install policycoreutils
root@k8s-master:~# kubectl -n kube-system get deployment coredns -o yaml | \
>   sed 's/allowPrivilegeEscalation: false/allowPrivilegeEscalation: true/g' | \
>   kubectl apply -f -
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
deployment.extensions/coredns configured
root@k8s-master:~# grep nameserver /etc/resolv.conf 
nameserver 127.0.1.1
root@k8s-master:~# cat /run/systemd/resolve/resolv.conf
cat: /run/systemd/resolve/resolv.conf: No such file or directory
root@k8s-master:~# cat /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS=--cgroup-driver=systemd --network-plugin=cni
root@k8s-master:~# systemctl list-unit-files | grep enabled | grep systemd-resolved
root@k8s-master:~# ps auxww | grep kubelet
root       501  3.3  2.6 496440 106152 ?       Ssl  07:09   0:41 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --network-plugin=cni
root@k8s-master:~# ufw disable
Firewall stopped and disabled on system startup

Apa yang terjadi?

root@k8s-master:~# kubectl get pods --all-namespaces
NAMESPACE     NAME                                 READY   STATUS             RESTARTS   AGE
kube-system   coredns-576cbf47c7-822v6             0/1     CrashLoopBackOff   11         24m
kube-system   coredns-576cbf47c7-n9tw9             0/1     CrashLoopBackOff   11         24m
kube-system   etcd-k8s-master                      1/1     Running            1          23m
kube-system   kube-apiserver-k8s-master            1/1     Running            1          23m
kube-system   kube-controller-manager-k8s-master   1/1     Running            1          23m
kube-system   kube-flannel-ds-amd64-qbff2          1/1     Running            1          20m
kube-system   kube-proxy-4bbbk                     1/1     Running            1          24m
kube-system   kube-scheduler-k8s-master            1/1     Running            1          23m

Apa yang Anda harapkan terjadi?

Saya berharap pod coredns dimulai dengan benar

Bagaimana cara memperbanyaknya (seminimal dan setepat mungkin)?

  1. Instal CRI = Docker
    https://kubernetes.io/docs/setup/cri/#docker
  2. Pasang Kubeadm
    https://kubernetes.io/docs/setup/independent/install-kubeadm/#installing -kubeadm-kubelet-and-kubectl
  3. Inisialisasi pod kubernetes
    kubeadm init --pod-network-cidr = 10.244.0.0 / 16
  4. Pasang Flanel
    https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#pod -network & gulir ke bawah ke bagian "Menginstal add-on jaringan pod" & pilih tab "Flanel"
  5. Periksa Pod dalam status berjalan:
    root @ k8s-master : ~ # kubectl dapatkan pods --all-namespaces

Ada hal lain yang perlu kami ketahui?

Solusi "Hack" yang disebutkan di https://stackoverflow.com/a/53414041/5731350 berfungsi tetapi saya tidak nyaman menonaktifkan sesuatu (loop) yang seharusnya berfungsi sebagaimana mestinya.

areecosystem help wanted kindocumentation prioritimportant-longterm

Komentar yang paling membantu

Lihat:
coredns / coredns # 2087 (komentar)

Ya, ini berfungsi seperti yang saya catat di bagian "Ada lagi yang perlu kami ketahui" tetapi sepertinya ini adalah solusi yang hacky.

root@k8s-master:~# kubectl -n kube-system edit configmap coredns
<add a comment in the line containing 'loop' here, and save the file.
configmap/coredns edited
root@k8s-master:~#

root@k8s-master:~# kubectl -n kube-system delete pod -l k8s-app=kube-dns
pod "coredns-576cbf47c7-2zjm4" deleted
pod "coredns-576cbf47c7-854dn" deleted
root@k8s-master:~# kubectl get pods --all-namespaces
NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE
kube-system   coredns-576cbf47c7-7ls7n             1/1     Running   0          14s
kube-system   coredns-576cbf47c7-lvbnq             1/1     Running   0          14s
kube-system   etcd-k8s-master                      1/1     Running   0          20m
kube-system   kube-apiserver-k8s-master            1/1     Running   0          20m
kube-system   kube-controller-manager-k8s-master   1/1     Running   0          20m
kube-system   kube-flannel-ds-amd64-96724          1/1     Running   0          20m
kube-system   kube-proxy-4gq5w                     1/1     Running   0          21m
kube-system   kube-scheduler-k8s-master            1/1     Running   0          20m
root@k8s-master:~#

Semua 44 komentar

berikan log dari pod CoreDNS.

google mengungkapkan banyak laporan bahwa ini bermasalah di Ubuntu:
nameserver 127.0.1.1
baca ini: https://askubuntu.com/questions/627899/nameserver-127-0-1-1-in-resolv-conf-wont-go-away

di 1.12.x Anda juga dapat mencoba --feature-gates=CoreDNS=false untuk mengaktifkan kube-dns.
hanya untuk pengujian.

@ aravind-murthy Apakah Anda menjalankan NetworkManager atau dnsmasq di komputer Anda?
diselesaikan systemd menggunakan 'nameserver 127.0.0.53' di /etc/resolv.conf dan menyimpan resolv.conf asli di /run/systemd/resolve/resolv.conf. Anda tidak memilikinya, jadi sepertinya systemd-diselesaikan tidak diaktifkan.

@ aravind-murthy Apakah Anda menjalankan NetworkManager atau dnsmasq di komputer Anda?
diselesaikan systemd menggunakan 'nameserver 127.0.0.53' di /etc/resolv.conf dan menyimpan resolv.conf asli di /run/systemd/resolve/resolv.conf. Anda tidak memilikinya, jadi sepertinya systemd-diselesaikan tidak diaktifkan.

Hai @ bart0sh - mohon saran bagaimana cara memeriksa NM dan dnsmasq? Ini adalah VM baru, jadi saya belum mengonfigurasi apa pun secara eksplisit (sejauh yang saya ketahui) kecuali sudah diaktifkan secara default di OS. Namun, saya dapat memeriksa dan melaporkan kembali.

@ aravind-murthy Harap periksa apakah Anda memiliki /etc/NetworkManager/NetworkManager.conf dan yang disebutkan di sana sebagai dns, misalnya dns = dnsmasq. Anda juga dapat memeriksa apakah proses dnsmasq dalam output 'ps aux' atau / dan status layanannya: 'sudo systemctl status dnsmasq'

berikan log dari pod CoreDNS.

google mengungkapkan banyak laporan bahwa ini bermasalah di Ubuntu:
nameserver 127.0.1.1
baca ini: https://askubuntu.com/questions/627899/nameserver-127-0-1-1-in-resolv-conf-wont-go-away

di 1.12.x Anda juga dapat mencoba --feature-gates=CoreDNS=false untuk mengaktifkan kube-dns.
hanya untuk pengujian.

root@k8s-master:~# kubectl get pods --all-namespaces
NAMESPACE     NAME                                 READY   STATUS             RESTARTS   AGE
kube-system   coredns-576cbf47c7-dkhx5             0/1     CrashLoopBackOff   1          9m9s
kube-system   coredns-576cbf47c7-qlnqn             0/1     CrashLoopBackOff   1          9m9s
kube-system   etcd-k8s-master                      1/1     Running            0          18s
kube-system   kube-apiserver-k8s-master            1/1     Running            0          18s
kube-system   kube-controller-manager-k8s-master   1/1     Running            0          18s
kube-system   kube-flannel-ds-amd64-nr8lx          1/1     Running            0          32s
kube-system   kube-proxy-8s48m                     1/1     Running            0          9m9s
kube-system   kube-scheduler-k8s-master            1/1     Running            0          18s
root@k8s-master:~# kubectl describe pod coredns-576cbf47c7-dkhx5
Error from server (NotFound): pods "coredns-576cbf47c7-dkhx5" not found

berikan log dari pod CoreDNS.

google mengungkapkan banyak laporan bahwa ini bermasalah di Ubuntu:
nameserver 127.0.1.1
baca ini: https://askubuntu.com/questions/627899/nameserver-127-0-1-1-in-resolv-conf-wont-go-away

di 1.12.x Anda juga dapat mencoba --feature-gates=CoreDNS=false untuk mengaktifkan kube-dns.
hanya untuk pengujian.

root@k8s-master:~# kubectl get pods --all-namespaces
NAMESPACE     NAME                                 READY   STATUS             RESTARTS   AGE
kube-system   coredns-576cbf47c7-dkhx5             0/1     CrashLoopBackOff   4          11m
kube-system   coredns-576cbf47c7-qlnqn             0/1     CrashLoopBackOff   4          11m
kube-system   etcd-k8s-master                      1/1     Running            0          2m14s
kube-system   kube-apiserver-k8s-master            1/1     Running            0          2m14s
kube-system   kube-controller-manager-k8s-master   1/1     Running            0          2m14s
kube-system   kube-flannel-ds-amd64-nr8lx          1/1     Running            0          2m28s
kube-system   kube-proxy-8s48m                     1/1     Running            0          11m
kube-system   kube-scheduler-k8s-master            1/1     Running            0          2m14s
root@k8s-master:~# kubectl logs coredns-576cbf47c7-dkhx5
Error from server (NotFound): pods "coredns-576cbf47c7-dkhx5" not found
root@k8s-master:~# kubectl logs coredns-576cbf47c7-dkhx5 --previous
Error from server (NotFound): pods "coredns-576cbf47c7-dkhx5" not found

@ aravind-murthy Harap periksa apakah Anda memiliki /etc/NetworkManager/NetworkManager.conf dan yang disebutkan di sana sebagai dns, misalnya dns = dnsmasq. Anda juga dapat memeriksa apakah proses dnsmasq dalam output 'ps aux' atau / dan status layanannya: 'sudo systemctl status dnsmasq'

root@k8s-master:~# cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq

[ifupdown]
managed=false
root@k8s-master:~# systemctl status dnsmasq
● dnsmasq.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
root@k8s-master:~#

root@k8s-master:~# kubectl describe pod coredns-576cbf47c7-dkhx5
Error from server (NotFound): pods "coredns-576cbf47c7-dkhx5" not found

^ Anda perlu menambahkan -n kube-system untuk menentukan namespace juga.

root@k8s-master:~# kubectl describe pod coredns-576cbf47c7-dkhx5
Error from server (NotFound): pods "coredns-576cbf47c7-dkhx5" not found

^ Anda perlu menambahkan -n kube-system untuk menentukan namespace juga.

root@k8s-master:~# kubectl describe pod coredns-576cbf47c7-dkhx5 -n kube-system

<output snipped>

Events:
  Type     Reason            Age                     From                 Message
  ----     ------            ----                    ----                 -------
  Warning  FailedScheduling  11m (x34 over 16m)      default-scheduler    0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
  Normal   Started           6m46s (x4 over 7m33s)   kubelet, k8s-master  Started container
  Normal   Pulled            6m5s (x5 over 7m33s)    kubelet, k8s-master  Container image "k8s.gcr.io/coredns:1.2.2" already present on machine
  Normal   Created           6m5s (x5 over 7m33s)    kubelet, k8s-master  Created container
  Warning  BackOff           2m20s (x30 over 7m31s)  kubelet, k8s-master  Back-off restarting failed container

setelah kontainer memasukkan CrashLoopBackOff Anda juga dapat memanggil docker ps untuk melihat kontainer yang sedang berjalan dan kemudian docker logs [coredns-container-id] untuk melihat log dari kontainer itu sendiri.

@ aravind-murthy itu menarik. Layanan diaktifkan di manajer jaringan, tetapi tidak berjalan. Tolong, komentari baris 'dns = dnsmasq' di konfigurasi dan restart manajer jaringan: sudo systemctl restart network-manager

Kemudian pulihkan server nama asli di /etc/resolv.conf (mungkin ada komentar di luar sana). Itu akan membantu pod core-dns ketika mereka direstart oleh kubelet.

Saya dapat mereproduksi ini di komputer saya dengan kubeadm 1.12.3:

Warning  FailedScheduling  7s (x21 over 3m19s)  default-scheduler  0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.

setelah kontainer memasukkan CrashLoopBackOff Anda juga dapat memanggil docker ps untuk melihat kontainer yang sedang berjalan dan kemudian docker logs [coredns-container-id] untuk melihat log dari kontainer itu sendiri.

root@k8s-master:~# docker logs k8s_coredns_coredns-576cbf47c7-l6rkc_kube-system_59d21f34-f712-11e8-a662-001c423e384e_4
.:53
2018/12/03 15:47:02 [INFO] CoreDNS-1.2.2
2018/12/03 15:47:02 [INFO] linux/amd64, go1.11, eb51e8b
CoreDNS-1.2.2
linux/amd64, go1.11, eb51e8b
2018/12/03 15:47:02 [INFO] plugin/reload: Running configuration MD5 = f65c4821c8a9b7b5eb30fa4fbc167769
2018/12/03 15:47:02 [FATAL] plugin/loop: Seen "HINFO IN 2526125915973168889.7333277912286930769." more than twice, loop detected

Kemudian pulihkan server nama asli di /etc/resolv.conf (mungkin ada komentar di luar sana)

Saya belum berkomentar apa pun di file ini (/etc/resolv.conf). Saat ini memiliki entri berikut:

Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.211.55.1
nameserver 127.0.1.1
search localdomain

@ aravind-murthy bisakah kamu mengomentari baris dengan alamat dnsmasq: nameserver 127.0.1.1
maka Anda dapat menghapus pod core-dns. mereka akan direstart oleh kubelet dan mudah-mudahan akan bekerja

@ neolit123 kasus saya berbeda. pod core-dns dalam status menunggu keputusan, log kosong

@ aravind-murthy bisakah kamu mengomentari baris dengan alamat dnsmasq: nameserver 127.0.1.1
maka Anda dapat menghapus pod core-dns. mereka akan direstart oleh kubelet dan mudah-mudahan akan bekerja

cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.211.55.1
#nameserver 127.0.1.1
search localdomain
root@k8s-master:~# kubectl -n kube-system delete pod -l k8s-app=kube-dns
pod "coredns-576cbf47c7-l6rkc" deleted
pod "coredns-576cbf47c7-mhd4d" deleted


root@k8s-master:~# kubectl get pods --all-namespaces
NAMESPACE     NAME                                 READY   STATUS             RESTARTS   AGE
kube-system   coredns-576cbf47c7-2zjm4             0/1     Error              1          20s
kube-system   coredns-576cbf47c7-854dn             0/1     CrashLoopBackOff   1          20s
kube-system   etcd-k8s-master                      1/1     Running            0          13m
kube-system   kube-apiserver-k8s-master            1/1     Running            0          13m
kube-system   kube-controller-manager-k8s-master   1/1     Running            0          13m
kube-system   kube-flannel-ds-amd64-96724          1/1     Running            0          13m
kube-system   kube-proxy-4gq5w                     1/1     Running            0          14m
kube-system   kube-scheduler-k8s-master            1/1     Running            0          13m



md5-71924b6af31e6c3d5900914e6a6e2956



root@k8s-master:~# docker logs k8s_coredns_coredns-576cbf47c7-2zjm4_kube-system_4a9a1492-f714-11e8-a662-001c423e384e_5
.:53
2018/12/03 16:02:16 [INFO] CoreDNS-1.2.2
2018/12/03 16:02:16 [INFO] linux/amd64, go1.11, eb51e8b
CoreDNS-1.2.2
linux/amd64, go1.11, eb51e8b
2018/12/03 16:02:16 [INFO] plugin/reload: Running configuration MD5 = f65c4821c8a9b7b5eb30fa4fbc167769
2018/12/03 16:02:22 [FATAL] plugin/loop: Seen "HINFO IN 4180232279452050349.8122308360122098305." more than twice, loop detected

Lihat:
coredns / coredns # 2087 (komentar)

Ya, ini berfungsi seperti yang saya catat di bagian "Ada lagi yang perlu kami ketahui" tetapi sepertinya ini adalah solusi yang hacky.

root@k8s-master:~# kubectl -n kube-system edit configmap coredns
<add a comment in the line containing 'loop' here, and save the file.
configmap/coredns edited
root@k8s-master:~#

root@k8s-master:~# kubectl -n kube-system delete pod -l k8s-app=kube-dns
pod "coredns-576cbf47c7-2zjm4" deleted
pod "coredns-576cbf47c7-854dn" deleted
root@k8s-master:~# kubectl get pods --all-namespaces
NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE
kube-system   coredns-576cbf47c7-7ls7n             1/1     Running   0          14s
kube-system   coredns-576cbf47c7-lvbnq             1/1     Running   0          14s
kube-system   etcd-k8s-master                      1/1     Running   0          20m
kube-system   kube-apiserver-k8s-master            1/1     Running   0          20m
kube-system   kube-controller-manager-k8s-master   1/1     Running   0          20m
kube-system   kube-flannel-ds-amd64-96724          1/1     Running   0          20m
kube-system   kube-proxy-4gq5w                     1/1     Running   0          21m
kube-system   kube-scheduler-k8s-master            1/1     Running   0          20m
root@k8s-master:~#

Ya, ini berfungsi seperti yang saya catat di bagian "Ada lagi yang perlu kami ketahui" tetapi sepertinya ini adalah solusi yang hacky.

Anda juga dapat mencoba kube-dns, tetapi menurut saya Ubuntu melakukan kesalahan.

https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#coredns -pods-have-crashloopbackoff-or-error-state solution tidak berfungsi BTW.

solusi crashloopbackoff-or-error-state tidak berfungsi BTW.

sayangnya ada lebih dari satu alasan untuk status CrashLoopBackoff pod.

@ aravind-murthy Dapatkah Anda melihat jika baris 'nameserver 127.0.1.1' masih dikomentari di /etc/resolv.conf Anda? Ini dapat ditulis ulang dan dapat menyebabkan dns loop dan core-dns crash

@chrisohaver apa cara resmi untuk menyelesaikan masalah loop yang ada di stok Ubuntu 16.04 yang harus kami sertakan dalam panduan TS kami?

@ aravind-murthy dalam petunjuk penyiapan Anda, Anda menyebutkan bahwa Anda melakukan hal berikut:

  1. Inisialisasi pod kubernetes
    kubeadm init --pod-network-cidr = 10.244.0.0 / 16
  2. Pasang Flanel
    https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#pod -network & gulir ke bawah ke bagian "Menginstal add-on jaringan pod" & pilih tab "Flanel"

Sebelum memasang flanel melalui kubectl apply -f https://... , apakah Anda menyetel /proc/sys/net/bridge/bridge-nf-call-iptables menjadi 1 dengan menjalankan sysctl net.bridge.bridge-nf-call-iptables=1 ?

@ neolit123 , IMO cara terbaik untuk memperbaiki masalah loop penerusan otomatis DNS, adalah dengan memperbaiki masalah penerapan yang mendasari di kubelet: bahwa kubelet mengirimkan server upstream yang tidak valid ke Pod dengan dnsPolicy = "default". Akibatnya, buat kubelet menggunakan salinan resolv.conf yang berisi upstream aktual (di mana pun yang ada di stok Ubuntu 16.04). Ini akan memperbaiki masalah untuk semua Pod dnsPolicy = "default", bukan hanya CoreDNS.

Sedikit rumit adalah menemukan di mana resolv.conf "asli" ada di sistem Anda. Tampaknya Ubuntu telah memindahkan ini dari rilis ke rilis. Jadi langkah-langkahnya adalah, untuk setiap node:

  1. temukan jalur ke resolv.conf yang hanya mencantumkan alamat IP sebenarnya dari server upstream Anda, tanpa alamat loopback.
  2. konfigurasikan kubelet untuk menggunakan path ini sebagai ganti default /etc/resolv.conf .

Opsi inti adalah secara manual membuat resolv.conf pada setiap node yang berisi server upstream yang Anda inginkan untuk digunakan oleh k8, dan arahkan setiap kubelet ke sana.

terima kasih banyak untuk detailnya @chrisohaver !

kami perlu menambahkan info ini ke panduan pemecahan masalah.
ini adalah masalah distro / resolv.conf dan bukan masalah kubeadm, tetapi pengguna kami menghadapinya.

halaman untuk diperbarui:
https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#coredns -pods-have-crashloopbackoff-or-error-state

Sebelum memasang flanel melalui kubectl apply -f https://... , apakah Anda menyetel /proc/sys/net/bridge/bridge-nf-call-iptables menjadi 1 dengan menjalankan sysctl net.bridge.bridge-nf-call-iptables=1 ?

Saya tidak, terima kasih telah menunjukkan hal itu. Saya akan mencoba lagi di VM bersih sekali lagi dan segera memberi saran.

@ neolit123 dalam kasus khusus ini kita perlu mencari cara untuk menonaktifkan dnsmasq sepenuhnya. Sepertinya menonaktifkannya di pengelola jaringan tidak cukup dan dhcp client atau perangkat lunak lain memasukkan 'nameserver 127.0.1.1' kembali ke dalamnya, yang memicu deteksi loop di core-dns.

@ neolit123 dalam kasus khusus ini kita perlu mencari cara untuk menonaktifkan dnsmasq sepenuhnya

Saya menyadari bahwa kami mengotomatiskan apa yang diteruskan ke kubelet tergantung pada penyelesaian systemd dan itu bermasalah. tetapi menginstruksikan pengguna untuk menulis resolv.conf kustom masih merupakan pilihan juga, saya kira.

Sepertinya menonaktifkannya di pengelola jaringan tidak cukup dan dhcp client atau perangkat lunak lain memasukkan 'nameserver 127.0.1.1' kembali ke dalamnya, yang memicu deteksi loop di core-dns.

jika kita menggunakan resolv.conf default, kita perlu menonaktifkan penambahan otomatis server nama loopback ini.

Jadi langkah-langkahnya adalah:
1) beri komentar dns=dnsmasq di konfigurasi manajer jaringan
2) posting ini memiliki beberapa info tentang apa yang harus dilakukan selanjutnya:
https://askubuntu.com/a/716813
tetapi bagi saya tampaknya solusi resolv.conf khusus lebih mudah dirumuskan dalam panduan TS.

Saya telah mengusulkan PR yang menggeneralisasi dokumen pemecahan masalah loop di readme plugin loop coredns, sehingga lebih jelas berlaku untuk semua jenis server caching DNS lokal, tidak hanya systemd-diselesaikan. coredns / coredns # 2363

@ aravind-murthy apakah Anda sudah mencoba lagi ini?

@ aravind-murthy apakah Anda sudah mencoba lagi ini?

@ alejandrox1 Belum beri saya waktu, saya perlu cluster k8s aktif dan berjalan untuk menguji plugin jenkins-k8s-kubectl (bukti konsep yang tidak terkait dengan masalah ini). Saya akan melaporkan kembali jika saya bisa.

sepertinya kami sudah memiliki entri untuk ini di panduan TS di sini:
https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#coredns -pods-have-crashloopbackoff-or-error-state

@ aravind-murthy jangan ragu untuk melaporkan temuan Anda.

Hai @ alejandrox1 , @ neolit123 - saya tidak tahu apakah itu kombinasi dari kubernetes v1.13 yang baru (ketika saya mengangkat tiket ini, saya menggunakan v1.12 karena itu adalah versi yang tersedia saat itu) atau saya mengikuti instruksi (benar ini waktu), tetapi, di Ubuntu 16.04.05, menginstal kubernetes v1.13 terbaru, mengikuti https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#tabs -pod-install-4 (yaitu Flannel ) dan kemudian setel net.bridge.bridge-nf-call-iptables ke 1, menggunakan perintah
sysctl net.bridge.bridge-nf-call-iptables=1 dan kemudian boot ulang mesin / VM, untuk mengizinkan pengaturan sysctl 'bertahan' & kemudian menginstal Flanel ......

Tidak ada lagi kesalahan crashloopback untuk coredns !!!

:-) :-)

Terima kasih banyak

@ aravind-murthy itu menarik. Layanan diaktifkan di manajer jaringan, tetapi tidak berjalan. Tolong, komentari baris 'dns = dnsmasq' di konfigurasi dan restart manajer jaringan: sudo systemctl restart network-manager

Kemudian pulihkan server nama asli di /etc/resolv.conf (mungkin ada komentar di luar sana). Itu akan membantu pod core-dns ketika mereka direstart oleh kubelet.

menonaktifkan dnsmasq untuk manajer jaringan dan mengomentari dnsmasq nameserver, berhasil untuk saya!

Saya mengalami masalah yang sama setelah menghapus loop.

Bisakah seseorang membantu saya dengan ini?

kubectl logs coredns-fb8b8dccf-j6mjl -n kube-system
Kesalahan dari server (BadRequest): penampung "coredns" dalam pod "coredns-fb8b8dccf-j6mjl" menunggu untuk dimulai: ContainerCreating
master @ master : ~ $ sudo kubectl get pods --all-namespacesNAMESPACE NAME STATUS SIAP MULAI ULANG
kube-system coredns-fb8b8dccf-j6mjl 0/1 Kontainer Membuat 0 7m31s
kube-system coredns-fb8b8dccf-lst4v 0/1 Kontainer Membuat 0 7m31s
kube-system etcd-master.testcluster.com 1/1 Berjalan 0 25m
kube-system kube-apiserver-master.testcluster.com 1/1 Berjalan

@ Ramane19 , pod Anda macet di "ContainerCreating", yang merupakan masalah lain.

Sebelum itu menunjukkan tertunda, setelah saya menghapus loop itu menunjukkan membuat wadah?

Apakah ada cara lain untuk menyelesaikan masalah ini?

Ya, ini berbicara tentang masalah perulangan, bukan pembuatan wadah

@ Ramane19 , Sudahkah Anda membaca https://github.com/coredns/coredns/tree/master/plugin/loop#troubleshooting

Oke, maka tampaknya tidak terkait dengan masalah ini - yaitu di luar topik.

Kemudian pulihkan server nama asli di /etc/resolv.conf (mungkin ada komentar di luar sana)

Saya belum berkomentar apa pun di file ini (/etc/resolv.conf). Saat ini memiliki entri berikut:

Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.211.55.1
nameserver 127.0.1.1
search localdomain

Ini berhasil untuk saya

Apakah halaman ini membantu?
0 / 5 - 0 peringkat