Kubernetes (K8s) のデプロイメントでは、ポッド、サービス、イングレス、応答しないクラスター、コントロール プレーン、高可用性設定など、さまざまな角度から課題が発生することがよくあります。 Kubernetes ポッドは、Kubernetes エコシステムで展開可能な最小の単位であり、リソースとネットワークを共有する 1 つ以上のコンテナをカプセル化します。ポッドは、アプリケーションまたはプロセスの単一のインスタンスを実行するように設計されており、必要に応じて作成および破棄されます。ポッドは、K8s 環境でのアプリケーションのスケーリング、更新、保守に不可欠です。 『Master Kubernetes Pods: Advanced Troubleshooting Strategies』 (著者なし) からの翻訳です。 この記事では、Kubernetes ポッドの課題とトラブルシューティング手順について説明します。 Kubernetes ポッドの実行中に表示される可能性のあるエラー メッセージには、次のようなものがあります。
場合によっては、エラーがリストに表示されなくても、ポッドが失敗していることに気付くことがあります。まず、Kubernetes リソースをデバッグするときは、API リファレンスに注意することが重要です。さまざまな Kubernetes API がどのように定義され、ポッド/デプロイメント内の複数のオブジェクトがどのように機能するかについて説明します。ドキュメントは、Kubernetes Web サイトの API リファレンスで明確に定義されています。この場合、ポッドをデバッグするときに、API リファレンスからポッド オブジェクトを選択して、ポッドの動作の詳細を確認します。これは、ポッドに入るフィールド、つまりバージョン、タイプ、メタデータ、仕様、ステータスを定義します。 Kubernetes では、必要なコマンドのガイドを含むチートシートも提供されています。 前提条件この記事は、読者が以下の要件を満たしていることを前提としています。
Kubernetes ポッド エラー - ImagePullBackoffこのエラーは、次の 3 つの理由で表示されます。
これらの状況は、ミラーに関する正しい情報がない場合に発生します。また、リポジトリ (プライベート リポジトリ) からイメージをプルする権限がない場合もあります。以下の例でこれを実証するために、nginx デプロイメントを作成します。 Pod が実行されたら、Pod 名を取得します。 実行中のポッドの名前をコピーして、その詳細情報を取得します。
ImagePullBackoff をデモンストレーションするには、デプロイメント YAML ファイルを編集し、存在しないイメージを指定します。 新しいポッドは正常にデプロイされませんでした
ImagePullBackoffエラーが表示される
K8s を本番環境で実行するたびに、K8s 管理者はクラスター内で実行されている名前空間の要件に基づいて、各名前空間にリソース クォータを割り当てます。名前空間は、クラスター内で論理的な分離を提供するために使用されます。 リソース クォータの仕様がポッド内のアプリケーションの最小要件を満たしていない場合、「イメージはプルされましたが、ポッドはまだ保留中です」というエラーがスローされます。次の例では、payments という名前空間が作成されます。 関連する仕様でリソース割り当てを作成する
名前空間の支払いにリソースクォータを割り当てる
デプロイメントは作成されましたが、準備中の状態の Pod はなく、更新中の Pod はなく、使用可能な Pod もありません。 さらにデバッグするには、nginx のデプロイメントについて説明します。ポッドの作成に失敗しました:
このエラーは、イメージが正常にプルされ、コンテナが作成されたが、ランタイム構成が失敗した場合に発生します。たとえば、動作中の Python アプリケーションがあり、存在しないフォルダー、またはそのフォルダーへの書き込み権限がないフォルダーに書き込もうとしている場合などです。最初にアプリケーションが実行され、その後エラーが発生します。アプリケーション ロジックでパニックが発生すると、コンテナーは停止します。コンテナはCrashLoopBackOff状態になります。最終的に、デプロイメントに Pod がないことがわかります。つまり、Pod は存在しますが、実行されておらず、CrashLoopbackoff エラーがスローされます。 生存および準備の調査に失敗しました活性プローブは、ポッドが破損した状態になり、トラフィックを処理できなくなったかどうかを検出します。 Kubernetes が Pod を再起動します。準備プローブは、アプリケーションがトラフィックを処理する準備ができているかどうかを確認します。準備プローブは、アプリケーションが構成マップから必要なすべての構成を抽出し、スレッドを開始することを保証します。このプロセスが完了した後にのみ、アプリケーションはトラフィックを受信できるようになります。このプロセス中にアプリケーションでエラーが発生した場合も、CrashLoopBackoff 状態になります。 トラブルシューティングを始めましょう!この記事では、Kubernetes Pod のトラブルシューティング手法の概要を説明します。 Pod をデプロイするときに発生する一般的なエラーを取り上げ、それらを解決するための実用的なソリューションを提供します。また、Kubernetes の仕組みを理解し、問題を効果的に特定して解決するために重要なリファレンス ページとチート シートに関する情報も提供します。この記事で提供されているガイダンスに従うことで、読者はトラブルシューティング スキルを向上させ、Kubernetes Pod の展開と管理を簡素化できます。 |
>>: ByteDance 第2回インタビュー: 分散ロックを使用したことはありますか?分散ロック実装ソリューションは何ですか?分散ロックを使用する利点と欠点は何ですか?
hostsolutionsは、新しいコンピュータルームを開設したことを正式に発表しました。ボスは比較...
ゲームやゲーミフィケーション活動は、当然のことながら、ユーザーの粘着性とアクティビティが強くなります...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています有名ブラン...
[51CTO.com からのオリジナル記事] Parallels が昨年 9 月に Parallel...
2、3日後にHost Catのテーマを修正して入れ替えます。ゆっくりと調整して最適化するのに時間がか...
電子商取引プラットフォーム活動の力は誰の目にも明らかです。ほぼすべての休日に大規模なプロモーション活...
2019年7月中旬から11月中旬にかけて、 Pinduoduoの株価は7月中旬の1株あたり約20米ド...
誰もが機密情報ウェブサイトモデルの問題について議論しています。私にはアイデアがあります。どうか私に考...
Vultr は、SSD VPS クラウドがスナップショット機能を正式にサポートすることを公式に発表し...
2年前、「Jump Jump」というミニゲームプログラムがWeChat Momentsで人気を博しま...
数万元もする高級品が、一夜にして40%や50%も値引きされることもある。こうした値引きは間違いなく魅...
ユーザー ジャーニーとは、最初のコンタクトから支払いの完了、製品やサービスの享受に至るまで、ユーザー...
ウェブサイトの収益性に関する私の考えは非常にシンプルです。つまり、優れたユーザー エクスペリエンスと...
過去 2 年間で、マイクロサービスはますます普及し、分散環境に導入されるアプリケーションも増えていま...
これら 5 つの注目の SEO トレンドを見ると、見落としがちなトレンドがいくつかあることに気づくか...