1. ノードを削除するkubectl delete node node01を実行します。 2. この時点で結合を直接実行するとエラーが報告されます。次のように:[root@k8s-node02 pki]# kubeadm join 192.168.140.128:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:a3d9827be411208258aea7f3ee9aa396956c0a77c8b570503dd677aa3b6eb6d8 [プリフライト] プリフライトチェックの実行 [警告 SystemVerification]: この Docker バージョンは検証済みバージョンのリストにありません: 19.03.12。最新の検証済みバージョン: 18.09 エラー実行フェーズのプリフライト: [プリフライト] 致命的なエラーが発生しました: [ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf がすでに存在します [ERROR FileAvailable--etc-kubernetes-bootstrap-kubelet.conf]: /etc/kubernetes/bootstrap-kubelet.conf がすでに存在します [エラー ポート-10250]: ポート 10250 は使用中です [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt は既に存在します [プリフライト] 何をしているのかわかっている場合は、`--ignore-preflight-errors=...` を使用して致命的ではないチェックを行うことができます。 解決:エラー レポートによると、ポートが占有されており、構成ファイルと CA 証明書が生成されていることがわかります。そのため、これらの構成ファイルと証明書を削除し、占有されているポートを強制終了する必要があります。削除する前にバックアップすることをお勧めします。 [root@k8s-node02 pki]# lsof -i:10250 コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名 kubelet 694 ルート 30u IPv6 26021 0t0 TCP *:10250 (LISTEN) [root@k8s-node02 pki]# キル -9 694 [root@k8s-node02 pki]# cd /etc/kubernetes/ [root@k8s-node02 kubernetes]# ls bootstrap-kubelet.conf kubelet.conf マニフェスト pki [root@k8s-node02 kubernetes]# mv bootstrap-kubelet.conf bootstrap-kubelet.conf_bk [root@k8s-node02 kubernetes]# mv kubelet.conf kubelet.conf_bk [root@k8s-node02 kubernetes]# cd pki/ [root@k8s-node02 pki]# ls ca.crt [root@k8s-node02 pki]# rm -rf ca.crt 3. 再度結合を実行すると、再度エラーが発生します。[root@k8s-node02 ~]# kubeadm join 192.168.140.128:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:a3d9827be411208258aea7f3ee9aa396956c0a77c8b570503dd677aa3b6eb6d8 [プリフライト] プリフライトチェックの実行 [警告 SystemVerification]: この Docker バージョンは検証済みバージョンのリストにありません: 19.03.12。最新の検証済みバージョン: 18.09 [プリフライト] クラスターから構成を読み取っています... [プリフライト] 参考までに: この設定ファイルは 'kubectl -n kube-system get cm kubeadm-config -oyaml' で確認できます。 [kubelet-start] kube-system 名前空間の "kubelet-config-1.15" ConfigMap から kubelet の設定をダウンロードしています [kubelet-start] kubelet 設定をファイル "/var/lib/kubelet/config.yaml" に書き込みます [kubelet-start] フラグ付きの kubelet 環境ファイルをファイル "/var/lib/kubelet/kubeadm-flags.env" に書き込みます [kubelet-start] kubeletサービスの有効化 [kubelet-start] kubelet が TLS ブートストラップを実行するのを待機しています... [kubelet-check] 初期タイムアウトの40秒が経過しました。 実行フェーズのエラー kubelet-start: crisocket のアップロード エラー: 条件の待機中にタイムアウトしました 解決:kubeadm reset を実行して子ノードをリセットします。 [root@k8s-node02 ~]# kubeadm リセット [リセット] 警告: 'kubeadm init' または 'kubeadm join' によってこのホストに加えられた変更は元に戻ります。 [リセット] 続行しますか? [y/N]: y [プリフライト] プリフライトチェックの実行 W0710 10:22:57.487306 31093 removeetcdmember.go:79] [リセット] kubeadm 構成がありません。etcd ポッド仕様を使用してデータディレクトリを取得します [リセット] etcd 設定が見つかりません。外部 etcd を想定しています [リセット] さらなる問題を防ぐために、etcdを手動でリセットしてください。 [リセット] kubelet サービスを停止する [リセット] 「/var/lib/kubelet」にマウントされたディレクトリをアンマウントします [リセット] 設定ディレクトリの内容を削除しています: [/etc/kubernetes/manifests /etc/kubernetes/pki] [リセット] ファイルを削除しています: [/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/scheduler.conf] [リセット] ステートフルディレクトリの内容を削除しています: [/var/lib/kubelet /etc/cni/net.d /var/lib/dockershim /var/run/kubernetes] リセット プロセスでは、iptables ルールまたは IPVS テーブルはリセットまたはクリーンアップされません。 iptables をリセットしたい場合は、手動で行う必要があります。 例えば: iptables -F && iptables -t nat -F && iptables -t マングル -F && iptables -X クラスタがIPVSを利用するように設定されている場合は、ipvsadm --clear(または同様のコマンド)を実行します。 システムの IPVS テーブルをリセットします。 リセット プロセスでは kubeconfig ファイルは消去されないため、手動で削除する必要があります。 $HOME/.kube/config ファイルの内容を確認してください。 4. 最後に結合を実行すると問題は解決します。[root@k8s-node02 ~]# kubeadm join 192.168.140.128:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:a3d9827be411208258aea7f3ee9aa396956c0a77c8b570503dd677aa3b6eb6d8 [プリフライト] プリフライトチェックの実行 [警告 SystemVerification]: この Docker バージョンは検証済みバージョンのリストにありません: 19.03.12。最新の検証済みバージョン: 18.09 [プリフライト] クラスターから構成を読み取っています... [プリフライト] 参考までに: この設定ファイルは 'kubectl -n kube-system get cm kubeadm-config -oyaml' で確認できます。 [kubelet-start] kube-system 名前空間の "kubelet-config-1.15" ConfigMap から kubelet の設定をダウンロードしています [kubelet-start] kubelet 設定をファイル "/var/lib/kubelet/config.yaml" に書き込みます [kubelet-start] フラグ付きの kubelet 環境ファイルをファイル "/var/lib/kubelet/kubeadm-flags.env" に書き込みます [kubelet-start] kubeletサービスの有効化 [kubelet-start] kubelet が TLS ブートストラップを実行するのを待機しています... このノードはクラスターに参加しました: * 証明書署名要求が apiserver に送信され、応答が受信されました。 * Kubelet に新しい安全な接続の詳細が通知されました。 コントロール プレーンで「kubectl get nodes」を実行して、このノードがクラスターに参加していることを確認します。 5. マスターノードを確認し、正常に参加します。[root@k8s-master01 ~]# kubectl ノードを取得する 名前 ステータス 役割 年齢 バージョン k8s-master01 マスター 120m v1.15.1 準備完了 k8s-node01 準備完了 <なし> 100m v1.15.1 k8s-node02 準備完了 <なし> 83m v1.15.1 これで、k8s ノードをマスター クラスターに再参加させる実装に関するこの記事は終了です。より関連性の高い k8s ノード マスター クラスター コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Linux suse11でルートパスワードを忘れた場合に変更する方法の簡単な分析
導入データベース理論についてさらに学んでいくうちに、さまざまな分離レベルによって起こり得る問題につい...
以下のように表示されます。 bb_sbからa1、a2、a1+a2 a、a1*a2 b、a1*1.0/...
Linux でバージョン情報を表示する方法。ビット数、バージョン情報、CPU コア情報、CPU 固有...
一般的なゲストブック、フォーラムなどでは、テキスト入力ボックスが使われています。これは HTML 言...
目次1. オプションの連鎖演算子 [? .】 2. 論理的な空の代入 (?? =) 3. 論理和代入...
背景多くのウェブサイトのデザインは、一般的にコンテンツ+フッターの2つの部分で構成されています。コン...
目次序文非同期読み込みパッケージコンポーネントコンポーネントの使用インターフェースをカスタマイズする...
目次1. プロセス2. コアアーキテクチャ2.1 サーバー層の基本コンポーネントの紹介3. ステート...
テーブル構造を編集するための MySQL の alter コマンドの使用。具体的な内容は以下のとおり...
この記事では、bootstrapテーブルの使い方を参考までに紹介します。具体的な内容は次のとおりです...
1. ビジネスシナリオ最近はファイルのアップロードやダウンロードに関する開発をしています。ダウンロー...
目次概要1. 入力および出力プロパティの概要2. 入力属性3. プロパティバインディングは親コンポー...
今日は、CSS 3.0 で実装されたネオン ボタン アニメーション効果を紹介します。効果は次のとおり...
1. レンダリングJD効果シミュレーション効果 2. 原則高さと幅が0のボックスを用意しますこのボ...
Web ページを設計する過程で、デザイナーが間違いを犯すのは必然です。特に新人は、新しいアイデアを実...