web-dev-qa-db-ja.com

Kubernetes- crisocketのアップロードエラー:条件の待機中にタイムアウトしました

1つのマスターノードと2つのワーカーノードを持つKubernetesクラスターのテンプレートを作成しようとしています。すべてのpre-reqソフトウェアをインストールし、マスターノードでkubeadmn initを実行しました。しかし、initコマンドの出力として取得するkubeadmn joinを実行しようとすると、エラーが発生します。

[ディスカバリ] API Server "10.31.2.33:6443"への接続を試行しています[ディスカバリ]「 https://10.31.2.33:644 "[ディスカバリ]」から情報を要求するクラスタ情報ディスカバリクライアントを作成しました「 https://10.31.2.33:644 」から情報を再度要求して、ピン留めされた公開キーに対してTLSを検証します。 API Server "10.31.2.33:6443" [発見] API Server "10.31.2.33:6443"との接続が正常に確立されました[kubelet] kube-system名前空間の "kubelet-config-1.12" ConfigMapからkubeletの構成をダウンロードします[ kubelet] kubelet設定をファイル "/var/lib/kubelet/config.yaml"に書き込む[kubelet]フラグ付きのkubelet環境ファイルをファイル "/var/lib/kubelet/kubeadm-flags.env"に書き込む[preflight] kubeletをアクティブにするservice [tlsbootstrap] kubeletがTLSブートストラップを実行するのを待っています... [patchnode] CRIソケット情報をアップロードしています "/var/run/dockershim.s ock "をNode APIオブジェクト" "としてcrisocketをアップロードする際の注釈エラー:条件の待機中にタイムアウトしました

workdernode2でこれを実行する前に、swapoff -aを実行しました。

結合を1回実行できましたが、その後、スクリプトの一部としてkubeadmnリセットを実行し、続いてinitとjoinを実行して、これが表示されるようになりました。

何をどこでミスしているのかわかりません。

私の主な目的は、すべてのコマンドをシェルスクリプト(マスターノード上)の形式で配置し、クラスター上で実行してネットワークを作成できるようにすることです。

7
sierralimaa

Ubuntu 16.04 AMD64でも同じ問題が発生しましたが、次のコマンドで修正しました。

swapoff -a    # will turn off the swap 
kubeadm reset
systemctl daemon-reload
systemctl restart kubelet
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X  # will reset iptables

また、kubeadm GitHubでその問題を確認してください 関連する問題のkubeadmスワップ ここで、スワップをオフにした後も問題があると報告されています。

また、-fail-swap-on = falseフラグを/ etc/default/kubeletファイルに追加しようとする場合もありますが、しかし、ケース。

クラスターをアップグレードして以来、私はそれを経験していないため、最新のk8バージョンでは修正されているようです。

2
Alex

ノードの再起動後に次の問題が発生しました。

[kubelet] Creating a ConfigMap "kubelet-config-1.13" in namespace kube-system with the configuration for the kubelets in the cluster
[patchnode] Uploading the CRI Socket information "/var/run/dockershim.sock" to the Node API object "k8smaster" as an annotation
[kubelet-check] Initial timeout of 40s passed.
error execution phase upload-config/kubelet: Error writing Crisocket information for the control-plane node: timed out waiting for the condition

この問題を取り除く手順:

  1. ホスト名を再度確認してください。再起動後に変更されている可能性があります。

Sudo vi /etc/hostname Sudo vi /etc/hosts

  1. 次のクリーンアップアクションを実行します

コード:

Sudo kubeadm reset
rm -rf /var/lib/cni/
Sudo rm -rf /var/lib/cni/

systemctl daemon-reload

systemctl restart kubelet

Sudo iptables -F && Sudo iptables -t nat -F && Sudo iptables -t mangle -F && Sudo iptables -X
  1. 以下の特別なタグを使用してinitアクションを実行します

コード

Sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=10.10.10.2 --ignore-preflight-errors=all    

(10.10.10.2はマスターノードのIP、192.168.0.0/16はポッドに割り当てられたプライベートサブネットです)

1
Deb