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を実行して、これが表示されるようになりました。
何をどこでミスしているのかわかりません。
私の主な目的は、すべてのコマンドをシェルスクリプト(マスターノード上)の形式で配置し、クラスター上で実行してネットワークを作成できるようにすることです。
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バージョンでは修正されているようです。
ノードの再起動後に次の問題が発生しました。
[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
この問題を取り除く手順:
Sudo vi /etc/hostname Sudo vi /etc/hosts
コード:
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
コード
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はポッドに割り当てられたプライベートサブネットです)