k8s-kubernetesエラーコレクション
エッセイ、調査の結論、自分自身を見た後、記事はよりカジュアルになります
①
[root @ centos7 K8S-Auto] #kubectl
サーバーのローカルホストへの接続でノードをGET :8080は拒否されました--- あなたが正しいDIDを指定してくださいホストまたはポートで?
上記のエラー、環境変数が設定されているかどうかを確認し、次の手順を確認します
env | grep -i kube
そうでない場合、空であるか、パスが間違っている、ファイルが間違っているなど。エラーを修正して修正するだけです。追加方法は次のとおりです。
一時的な方法
export KUBECONFIG=/etc/kubernetes/admin.conf
恒久的な変更
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" > /etc/profile.d/kubeconfig.sh
source /etc/profile.d/kubeconfig.sh
変更して再試行してください。②ノードNotReadyの理由
トラブルシューティング手順、ポッドのステータスを次のように確認し、corednsが保留中(一時停止中)であると説明し、詳細情報を確認します
kubectl describe pods coredns-546565776c-bkhvx -n kube-system
これは私が一番下で言ったことです。ここにノードを追加してから、トラブルシューティングのためにログを見てみましょう。マスターノードが1つしかないためです。
問題②最初にスキップしてから後で解決します。次に、別のホストに移動して参加します。新しいノード
③
kubeadmは192.168 .40.130に参加:6443 --token hdp0kg.ac73i5ms09kuvqbx --discoveryトークン-CA-CERT-ハッシュSHA256:5026d0d1673e55ae99bdbf74d6633988d3e9d76a70903adae9e5b9a8582bdf1a
このトークン値は、それぞれの人のために同じではありません、そして最後の一つは同じではありません。参照してください。
エラー:缶は、UNIXでドッカーデーモンに接続できません:///var/run/docker.sockを実行しているデーモンドッキングウィンドウです。?
かなりの情報を印刷するエラーを
、エラー:終了ステータス1
[ERRORサービス-ドッカー]:ドッキングウィンドウのサービスではありませんアクティブです。「systemctlstartdocker.service」を実行してください
[エラーIsDockerSystemdCheck]:
「dockerinfo -f { {.CgroupDriver}}」を実行できません :終了ステータス2
[エラーFileContent–proc-sys-net-ipv4-ip_forward]:/ proc / sys / net / ipv4 / ip_forwardの内容が1に設定されていません
[エラーSystemVerification]:Docker情報の検証エラー:「unixでDockerデーモンに接続できません:/// var / run /docker.sock。dockerデーモンは実行されていますか?」
[プリフライト]何をしているのかがわかっている場合は、で致命的ではないチェックを行うことができます。--ignore-preflight-errors=...
このエラーのスタックトレースを確認するには、次のコマンドを実行します。 -v = 5以上
、Figure Dockerサービスが再生されなかった、再生されなかった、正常に起動しようとしたが、起動コマンドが非常に簡単であると述べた_
systemctl start docker.service
成功
④マスターホストに戻ります。OK
、②のエラーを解決し、システムログを確認します。
このエラーがブラシ処理されていることがわかります
。cni構成を更新できません:/etc/cni/net.dにネットワークが見つかりません
コンテナランタイムネットワークの準備ができていません:NetworkReady = false理由:NetworkPluginNotReadyメッセージ:docker:ネットワークプラグインの準備ができていません:cni config uninitializedこれ
は、ネットワークの問題であることを示しています。これは、展開する必要のあるネットワーク計画サービスです。 。私はここにフランネルが展開されていますので、手順があり、corednsポッドを使用するとして、次のとおりです。
wgetのhttps://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlに
ここで、ダウンロード別です私のドキュメントであり、ファイルはcsdnのリソースにも提供され
ますこのyamlでは、ネットワークカードをバインドするように構成を変更して、デュアルネットワークカードを搭載したマシンが展開されたときのエラーを防ぐことができます。
キーワードmasqを検索し、追加します。 -図の位置にあるiface。ここでのens33は私のネットワークカード名に対応しています。それに応じて変更します。はい。
マスターにデプロイします。
kubectl apply -f kube-flannel.yml
初期化中、詳細を確認するために説明します。
イメージがプルされている場合、ImagePullBackOffが報告されることがあります。そのほとんどは、イメージプルのタイムアウト
、ネットワーク速度(ミラーソースの交換)、またはsystemdサービスの異常が原因です。ディスクメモリなど。解決策に対応するエラーメッセージに応じて待機します
。systemd1サービスタイムアウトの問題の場合は、kubeletプロセスを手動で強制終了し、システムログ(メッセージとdmesg)に従ってエラーを修正する必要があります。次に、コンピュータを再起動します。次の図に
示すよう
にエラーが修正されると、次の図が表示されます。
別のノードのこのポッドは初期化されています
ABRT has detected 1 problem(s). For more info run: abrt-cli list --since 1597805286
[root@k8s-node2 ~]# abrt-cli list --since 1597805286
id 0770fc07826bfb4326df323a5bc3e3bdc9c54cc8
reason: NMI watchdog: BUG: soft lockup - CPU#2 stuck for 22s! [flannel:6611]
time: 2020年08月19日 星期三 15时49分39秒
cmdline: BOOT_IMAGE=/vmlinuz-3.10.0-1062.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=zh_CN.UTF-8
package: kernel
uid: 0 (root)
count: 1
Directory: /var/spool/abrt/oops-2020-08-19-15:49:39-6633-0
已报告: 无法报告
已禁用自动报告功能。请考虑启用该功能,方法是
作为有 root 特权的用户使用命令 'abrt-auto-reporting enabled'
このCPU占有率が高すぎるため、シングルコアソフトロック(「デッドロック」)が発生します。これは頻繁に発生します。具体的な理由を詳細に分析する必要があります。以下に例を示し、分析は
完了しますが、corednsまだ準備ができていない場合は、システムログを確認してください
Aug 19 15:55:39 k8s-master flanneld-start: E0819 15:55:39.713690 8277 network.go:102] failed to retrieve network config: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 192.168.161.131:2379: i/o timeout
Aug 19 15:55:41 k8s-master flanneld-start: E0819 15:55:41.714940 8277 network.go:102] failed to retrieve network config: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 192.168.161.131:2379: i/o timeout
Aug 19 15:55:43 k8s-master flanneld-start: E0819 15:55:43.717839 8277 network.go:102] failed to retrieve network config: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 192.168.161.131:2379: i/o timeout
上記のエラーは、これら3台のマシンにetcdとflannel(docker-swarmのビルド時に必要)をインストールしたためです。etcdをクラスターに追加すると、エラーが報告され、保存されているものを削除しましたが、削除しませんでした。フランネルについて考えてみてください。まだオンになっています。このIPを変更したので、オンラインではないIPに接続すると、もちろんエラーが報告されます。/etc/hostsを確認して見つけてください。
192.168.161.131 etcd#これは削除されますが、3台のマシンすべてで
エラーが報告されます。メッセージにログを要約してください。
Aug 19 16:33:55 k8s-master flanneld-start: E0819 16:33:55.743196 15589 network.go:102] failed to retrieve network config: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp: lookup etcd on 114.114.114.114:53: no such host
Aug 19 16:32:03 k8s-master flanneld-start: E0819 16:32:03.592101 15556 network.go:102] failed to retrieve network config: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 192.168.161.127:2379: getsockopt: connection refused
次の図は、クラスターを表示したログです。
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> default-scheduler 0/1 nodes are available: 1 node(s) had taint {
node.kubernetes.io/not-ready: }, that the pod didn't tolerate.
Warning FailedScheduling <unknown> default-scheduler 0/2 nodes are available: 2 node(s) had taint {node.kubernetes.io/not-ready: }, that the pod didn't tolerate.
Warning FailedScheduling <unknown> default-scheduler 0/3 nodes are available: 3 node(s) had taint {
node.kubernetes.io/not-ready: }, that the pod didn't tolerate.
Normal Scheduled <unknown> default-scheduler Successfully assigned kube-system/coredns-546565776c-6mvpj to k8s-node2
Normal Pulling 10m kubelet, k8s-node2 Pulling image "registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7"
Normal Pulled 10m kubelet, k8s-node2 Successfully pulled image "registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7"
Normal Created 10m kubelet, k8s-node2 Created container coredns
Normal Started 10m kubelet, k8s-node2 Started container coredns
Warning Unhealthy 8m34s kubelet, k8s-node2 Readiness probe failed: Get http://10.18.1.2:8181/ready: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Warning Unhealthy 10s (x55 over 10m) kubelet, k8s-node2 Readiness probe failed: HTTP probe failed with statuscode: 503
このため、スレッドがブロックされ、CPU使用率が高すぎることがわかります。この時点で、k8sクラスター環境を停止できます(テストと学習のみ)が、kubeletとdockerを停止してもエラーの報告は停止しません。根本的な原因はクラスターにないため、
3台のマシンでetcdとflannelを直接アンインストールした後、エラーログは更新されません。
アンインストール手順は
本日です。