5.17. Go ベースの Operator 用のオブジェクトプルーニングユーティリティー


operator-lib プルーニングユーティリティーを使用すると、Go ベースの Operator は、オブジェクトが不要になったときにオブジェクトをクリーンアップまたはプルーニングできます。Operator の作成者は、ユーティリティーを使用してカスタムフックと戦略を作成することもできます。

5.17.1. operator-lib プルーニングユーティリティーについて

ジョブや Pod などのオブジェクトは、Operator ライフサイクルの通常の部分として作成されます。クラスター管理者または Operator がこれらのオブジェクトを削除しない場合には、そのままクラスターにとどまり、リソースを消費する可能性があります。

以前は、不要なオブジェクトの整理に次のオプションを使用できました。

  • Operator の作成者は、Operator 向けに独自のプルーニングソリューションを作成する必要がありました。
  • クラスター管理者は、自分でオブジェクトをクリーンアップする必要がありました。

operator-lib プルーニングユーティリティー では、特定の namespace の Kubernetes クラスターからオブジェクトを削除します。このライブラリーは、Operator Framework の一部として operator-lib ライブラリー のバージョン 0.9.0 で追加されました。

5.17.2. プルーニングユーティリティーの設定

operator-lib プルーニングユーティリティーは Go で記述されており、Go ベースの Operator の一般的なプルーニング戦略が含まれています。

設定例

cfg = Config{
        log:           logf.Log.WithName("prune"),
        DryRun:        false,
        Clientset:     client,
        LabelSelector: "app=<operator_name>",
        Resources: []schema.GroupVersionKind{
                {Group: "", Version: "", Kind: PodKind},
        },
        Namespaces: []string{"<operator_namespace>"},
        Strategy: StrategyConfig{
                Mode:            MaxCountStrategy,
                MaxCountSetting: 1,
        },
        PreDeleteHook: myhook,
}
Copy to Clipboard Toggle word wrap

プルーニングユーティリティー設定ファイルは、次のフィールドを使用してプルーニングアクションを定義します。

Expand
設定フィールド説明

log

ライブラリーログメッセージの処理に使用されるロガー。

DryRun

リソースを削除するかどうかを決定するブール値。true に設定すると、ユーティリティーは実行されますが、リソースは削除されません。

Clientset

Client-Kubernetes API 呼び出しに使用される Client-go Kubernetes ClientSet。

LabelSelector

プルーニングするリソースの検索時に使用される Kubernetes ラベルセレクター式。

Resources

Kubernetes リソースの種類。PodKindJobKind は現在サポートされています。

Namespaces

リソースを検索する Kubernetes namespace のリスト。

ストラテジー

実行するプルーニングストラテジー。

Strategy.Mode

MaxCountStrategyMaxAgeStrategy、または CustomStrategy が現在サポートされています。

Strategy.MaxCountSetting

プルーニングユーティリティーの実行後に残るリソース数を指定する MaxCountStrategy の整数値。

Strategy.MaxAgeSetting

リソースのプルーニングの有効期限を指定する Go 言語の time.Duration の文字列。例: 48h

Strategy.CustomSettings

カスタムストラテジー関数に指定可能な Go マップの値

PreDeleteHook

オプション: リソースのプルーニング前に呼び出す Go 関数

CustomStrategy

オプション: カスタムプルーニングストラテジーを実装する Go 関数

プルーニングの実行

プルーニング設定で execute 関数を実行して、プルーニングアクションを呼び出すことができます。

err := cfg.Execute(ctx)
Copy to Clipboard Toggle word wrap

cron パッケージを使用するか、トリガーイベントを指定してプルーニングユーティリティーを呼び出して、プルーニングアクションを呼び出すこともできます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat