web-dev-qa-db-ja.com

CrashLoopBackOffのKubernetes CoreDNS

この質問は何十回も尋ねられることを理解していますが、インターネット検索では何も助けになりませんでした。

私のセットアップ:

CentOS Linux release 7.5.1804 (Core)
Docker Version: 18.06.1-ce
Kubernetes: v1.12.3

公式ガイドとこれによってインストールされます: https://www.techrepublic.com/article/how-to-install-a-kubernetes-cluster-on-centos-7/

CoreDNSポッドはError/CrashLoopBackOff状態です。

kube-system   coredns-576cbf47c7-8phwt                 0/1     CrashLoopBackOff   8          31m
kube-system   coredns-576cbf47c7-rn2qc                 0/1     CrashLoopBackOff   8          31m

私の/etc/resolv.conf:

nameserver 8.8.8.8

私のローカルdns-resolver(ルーター)でも試してみました

nameserver 10.10.10.1

セットアップと初期化:

kubeadm init --apiserver-advertise-address=10.10.10.3 --pod-network-cidr=192.168.1.0/16
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

私はこれを解決しようとしました:corednsの編集:root @ kub〜]#kubectl edit cm coredns -n kube-systemおよび変更

proxy . /etc/resolv.conf

に直接

proxy . 10.10.10.1

またはプロキシ。 8.8.8.8

またしようとしました:

kubectl -n kube-system get deployment coredns -o yaml |   sed 's/allowPrivilegeEscalation: false/allowPrivilegeEscalation: true/g' |   kubectl apply -f -

それでも何も助けにはなりません。

ログからのエラー:

plugin/loop: Seen "HINFO IN 7847735572277573283.2952120668710018229." more than twice, loop detected

他のスレッド- corednsポッドにはCrashLoopBackOffまたはError状態があります まったく役に立たなかったので、そこで説明されている解決策を見つけていません。何も役に立たなかった。

4
Hakon89

このようなエラーが発生した場合でも、以下の手順で正常に機能しました。

ただし、8.8.4.4に失敗しました

Sudo nano etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

次のコマンドを実行してデーモンとドッカーサービスを再起動します

Sudo systemctl daemon-reload

Sudo systemctl restart docker

Kubeadmを使用している場合は、マスターからクラスター全体を削除し、クラスターを再度プロビジョニングしてください。

kubectl drain <node_name> --delete-local-data --force --ignore-daemonsets
kubectl delete node <node_name>
kubeadm reset

新しいクラスターをプロビジョニングしたら

kubectl get pods --all-namespaces

期待される結果を下回るはずです

NAMESPACE     NAME                       READY   STATUS    RESTARTS   AGE
kube-system   calico-node-gldlr          2/2     Running   0          24s
kube-system   coredns-86c58d9df4-lpnj6   1/1     Running   0          40s
kube-system   coredns-86c58d9df4-xnb5r   1/1     Running   0          40s
kube-system   kube-proxy-kkb7b           1/1     Running   0          40s
kube-system   kube-scheduler-osboxes     1/1     Running   0          10s
10

$ kubectl edit cm coredns -n kube-system delete ‘loop’、保存して、再起動マスターノードを終了します。それは私にとって仕事でした。

1
hk'

通常、corednsがkube-apiserverと通信できないときに発生します。

kubernetesサービスがデフォルトの名前空間にあることを確認します。

$ kubectl get svc kubernetes
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP        130d

次に(ポッドを作成する必要がある場合があります):

$ kubectl -n kube-system exec -it <any-pod-with-Shell> sh
# ping kubernetes.default.svc.cluster.local
PING kubernetes.default.svc.cluster.local (10.96.0.1): 56 data bytes

また、ポート443ポートから:

# telnet kubernetes.default.svc.cluster.local 443 # or
# curl kubernetes.default.svc.cluster.local:443
1
Rico