1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kubernetes: .status.conditions 実装チェックリスト

Posted at

基本構造の実装

  • type フィールドが実装されており、先頭大文字のCamelCaseで記述されている
  • status フィールドが実装されており、"True"/"False"/"Unknown"のいずれかの値のみを使用している
  • lastTransitionTime フィールドが実装されており、ISO8601タイムスタンプを使用している
  • reason フィールドが実装されており、UpperCamelCaseで簡潔に記述されている
  • message フィールドが実装されており、人間が理解できる詳細な説明が含まれている

Conditionタイプの設計

  • 複数の独立したConditionで状態を表現している
  • 各Conditionが異なる側面(準備完了、処理中、エラーなど)を表現している
  • 並行する状態を矛盾なく表現できる設計になっている
  • リソースの全体的な可用性を示すReady(または類似の)Conditionが実装されている
  • 既存ツールとの互換性のため、標準的な命名規則に従っている

状態定義

  • True: 条件が現在成立している状態が明確に定義されている
  • False: 明確に「成立していない」と判断できる状態が定義されている
  • Unknown: コントローラーが判断不能または未評価の状態が定義されている
  • 状態がFalseの場合、reasonmessageで詳細情報を提供している

ドキュメンテーション

  • Conditionタイプと説明の一覧表が作成されている
  • 各Conditionの取りうる状態とその説明が文書化されている
  • 状態遷移図が提供されている

ドキュメンテーションの例:

Conditionタイプと説明の一覧表の例

Conditionタイプ 説明
Ready アプリケーション全体の準備状態
DatabaseReady データベース接続とマイグレーションの状態
ApplicationReady アプリケーションコンテナとサービスの状態

各Conditionの取りうる状態とその説明の例

Status Reason 説明 運用者のアクション
True DatabaseConnected データベースに接続され、マイグレーションが完了している 対応不要
False ConnectionFailed データベースへの接続が確立できない データベースの認証情報とネットワーク接続を確認
False MigrationFailed データベースマイグレーションが失敗した マイグレーションログとデータベースの状態を確認
False CredentialsMissing データベースの認証情報が正しく設定されていない Secretの設定を確認
Unknown ConnectionTimeout データベース接続確認がタイムアウトした データベースの可用性とネットワーク状態を確認

状態遷移図の例

世代管理

  • .status.observedGenerationを実装している
  • リコンシリエーション時にmetadata.generationの値で更新している

監視対応

  • kube-state-metricsで扱える形式でConditionを実装している
  • Prometheusメトリクスとして収集可能な形式になっている
  • イベント(Events)と組み合わせた監視が可能な設計になっている
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?