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 構築を支援

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

推薦する

Bilibiliは独自のビジネス哲学を理解したのでしょうか?

サークルを抜け出した後、ビリビリでもう一つの大きな出来事が起こりました。ビリビリが香港株式市場に上場...

クラウド移行プレイブック: SaaS モデルへの適応

クラウドベースの SaaS モデルでは、システムの構築、セットアップ、管理は必要ありません。企業は必...

Kubernetes クラスタのセキュリティメカニズムの詳細な説明

[[320833]]この記事では、Kubernetes のセキュリティ メカニズムを中心に、一連の概...

edgenat: 618 イベント、30% オフ、完全に最適化された回線、香港 VPS\韓国 VPS\米国 VPS、韓国独立サーバー

edgenat は毎年恒例の 618 イベントを開始しました。韓国の CN2 VPS、香港の CN2...

エンタープライズレベルのコンテナクラウドプラットフォームの実装と実践

IT 業界の発展と変化に伴い、IT アプリケーションの基盤となるサポートも、メインフレーム、ミニコン...

エッジコンピューティングの新たなエッジ

人々がオフィスで働き、サーバーを使用する場合、実際にはエッジ コンピューティング機能が存在します。も...

2019年下半期の産業インターネットの8大トレンド!

「ビジネス」という言葉は、産業用インターネットでは異なる意味を持つようです。説明しなくても、人々が自...

seopassword が 14 日間で Baidu のウェイト 3 を構築した方法の分析

2012 年 6 月 2 日 14:00:16 に A5 フォーラムに投稿された投稿を覚えていますか...

モバイルゲームのトラフィックを購入するために使用されるチャネルは何ですか?この記事でわかります!

私は最近2週間かけて全国を旅行し、成都、上海、広州、深セン、厦門、北京の大量購入と流通の友人と多くの...

ウェブサイトのプロモーションを成功させるには、高い重み、高い検索、高い需要を獲得する必要がある

ウェブサイトのプロモーションは、誰もが知っている方法であり、ウェブサイトの可視性とトラフィックを増や...

百度検索結果の2ページ目上部に表示される関連検索の分析

表面的には、3b戦争は安定している。360総合検索は市場の8%をしっかりと占め、一方で百度は80%か...

個人ウェブマスターの15年間の起業家としての苦難の旅

過去10年間を振り返ると、喜びも悲しみも数え切れないほどありました。過去や自分が歩んできた道を振り返...

ウェブサイトの詳細を改善する方法

ウェブサイトの詳細を改善する方法まず、1 つの質問を理解する必要があります。Web サイトの詳細を完...

Dockerはどのように機能しますか?知っていましたか?

Dockerはどのように機能しますか?次の図は、Docker アーキテクチャと、「docker bu...