K8Sを本番環境に導入すると、90%のユーザーがこの障害に遭遇する。

K8Sを本番環境に導入すると、90%のユーザーがこの障害に遭遇する。

Kubernetes/K8s の本番環境では、90% の人が障害に遭遇します。ある日、K8s クラスターで kubectl コマンドを実行すると、エラー メッセージ 509 証明書の有効期限が切れているというメッセージが表示されます。次のエラー メッセージが返されます。

 Unable to connect to the server: x509: certificate has expired or is not yet valid

何が原因でしょうか?どうすれば解決できるでしょうか?

kubectl は実際に kube/config ファイルを読み取り、API サーバーへのリクエストを開始することがわかります。つまり、kubectl のすべての操作では、このファイルを使用して API サーバーからデータを取得し、現在のターミナルに表示します。

このプロンプトは、kube/config ファイル内の証明書と API サーバーの証明書の有効期限が切れていることを意味します。 kubeadm を使用してクラスターを構築する場合、そのすべての証明書はデフォルトで /etc/kubernetes/pki に保存されます。これらには主に、k8s および etcd で使用される証明書が含まれます。これらの証明書のデフォルトの有効期間は 1 年です。有効期限が切れると、k8s クラスターはサービスを提供できなくなります。

では、なぜ1年だけなのでしょうか?

これは、K8S の担当者が、最新のバージョンを維持するために、1 年に 1 回 K8S バージョンを更新していただくことを期待しているためです。同時に、その証明書によって実際に延長が与えられます。

1 年に 1 回バージョンを更新して証明書を更新するこの方法は、明らかに実稼働環境には適していません。この操作により、クラスターの不安定性やその他の問題が発生するリスクが高まります。

もちろん、kubeadm は、これらすべての証明書を自動的に更新できるコマンド メソッドも提供します。

kubeadm certs check-expiration を使用して、現在のクラスター証明書の有効期間を確認できます。この証明書はクラスターの構築時に kubeadm によって自動的に生成されるため、証明書の更新を管理するには kubeadm コマンドを使用します。

このコマンドを使用すると、現在のすべての証明書の有効期間を表示でき、証明書の有効期間は 342 日間であることがわかります。以下はそのルート証明書です。デフォルトは 10 年で、「ルート証明書は非常に重要」という意味です。

クライアント証明書の有効期限が切れている場合は、ルート証明書を使用して生成できます。このルート証明書が変更されると、その影響は比較的大きくなるため、kubeadm のルート証明書のデフォルトの有効期間は 10 年であり、これで十分です。主なアップグレードはクライアント証明書でもあります。

これらのクライアント証明書を直接アップグレードできるコマンドを提供します。ただし、アップグレード前に、アップグレード プロセス中に追加の問題が発生するのを回避し、回復を容易にするために、一部のデータをバックアップします。

まず、/etc/kubernetes/pki ディレクトリをバックアップします。

 cp /etc/kubernetes/pki /etc/kubernetes/pki.bk -r

次に、etcd データ ディレクトリをバックアップします。

 cp /var/lib/etcd /var/lib/etcd.bk -r

kubeadm certs renew all を使用して、すべての証明書をアップグレードし、1 年間更新します。

実行が完了したら、プロンプトに従って関連コンポーネントを再起動します。 K8S クラスターは kubeadm を使用してデプロイされるため、K8S 関連コンポーネントを再起動するには、次のコマンドを実行するだけで済みます。

 mv /etc/kubernetes/manifests/*.yaml /home sleep 20 mv /home/*.yaml /etc/kubernetes/manifests/

k8s クラスターが正常に起動するのを待った後、次のように証明書の時間を再度確認します。

上記の結果から、証明書の有効期間が1年になったことがわかります。

<<:  Amazon Web Services がアクセンチュアおよび Anthropic と提携し、企業の責任ある AI 構築を支援

>>:  デジタル体験を覆す革新の力 - エッジコンピューティングとクラウド

推薦する

解決しなければならないローカルウェブサイトに存在する問題についての簡単な議論

最近はフレンドリーリンクの作業を手伝ったり、もちろんローカルサイトの状況も見たりしています。交換以外...

最高人民法院と最高人民検察院:意図せず、または知らずにネット上で虚偽の情報を報告しても犯罪にはならない

9月9日、最高人民法院と最高人民検察院は共同で「情報ネットワークを利用した名誉毀損等の刑事事件の処理...

ウェブサイトのリンク構築で不正行為をしていませんか?

最近では、ウェブサイトのリンク構築における不正行為は大幅に抑制されています。以前は、多くのウェブサイ...

Haixue.com は、かつて個人のウェブマスターが所有していた haixue.com ドメイン名を取得しました。

2012年2月21日、遠隔教育ウェブサイト「HiXue.com」がダブルピンインドメイン名haixu...

百度の爆発的なインデックス増加の核心スキル

Baidu の包含をいかに迅速に増やすかは、多くのウェブマスターにとって常に頭痛の種でした。ウェブサ...

racknerd: メモリアル デー、年間 22 ドル、2G メモリ/2 コア/30g SSD/4T 帯域幅、ロサンゼルスの multacom データ センター

メモリアルデー(米国戦没者追悼記念日)に、racknerd は米国ロサンゼルスの DC-02 データ...

WordPress ブログの購読者を増やす 5 つの方法

しかし、購読者がたくさんいても、記事にコメントする人が誰もいない場合は、カウントされません。そこで、...

Kubernetes Pod 削除操作のソースコード分析

たとえば、更新戦略が Recreate であるアプリケーションがあり、次のように削除コマンドを実行し...

「王宝宝」の新しいブランドマーケティング手法

2017年4月、ブラックアントキャピタルは王宝宝のシリーズB資金調達に約1億元の投資を主導しました。...

安定した PHP 仮想ホストの選び方

PHP型仮想ホスティング このタイプの仮想ホスティングは、海外で古くから開発されてきました。技術は比...

B2Bウェブサイトコンテンツの4つの主要要素

理由: B2Bコンテンツの目標を明確にする自分の努力がどのような結果をもたらすかを理解することが重要...

Baidu キーワードリサーチ: 避けるべき 5 つの間違い!

月収10万元の起業の夢を実現するミニプログラム起業支援プランSEO プロジェクトの場合、SEO 担当...

ノキアは新製品を発売します。頑丈で耐久性のある道を進むことができるでしょうか?

メディアの報道によると、ノキアは、ノキアの最も高価な携帯電話として知られる1シリーズのフラッグシップ...

SEOの将来の方向性を予測することは、私たち全員にとって重要なことです

現在、百度は再びアルゴリズム調整の特別な時期を迎えています。SEOをうまく行うには、またウェブサイト...

VMwareの災害復旧のベストプラクティスはセキュリティの強化に役立ちます

VMware は高いレベルの可用性を提供しますが、それでもバックアップが必要です。災害が発生した場合...