Helm は、チャート、値、およびテンプレートからバージョン管理された Kubernetes マニフェストをレンダリングします。Helm はリリースメタデータをクラスターに記録しますが、Kubernetes は生成されたリソースのみを調整します。Kubernetes は Helm のテンプレートを理解も管理もしません。
Helm リリース #
デフォルト値は values.yaml に保持し、環境固有の値ファイルまたは明示的な --set 値の使用は控えめにし、適用する前にレンダリング結果を検証します。
sh
helm lint charts/orders
helm template orders charts/orders -f values-production.yaml
helm upgrade --install orders charts/orders -f values-production.yaml --namespace orders --create-namespace --atomic--atomic は、Helm が失敗を判定できる場合、失敗したアップグレードをロールバックしますが、外部管理されている状態をトランザクションとして扱うことはありません。フック、CRD、データベースのマイグレーション、およびロールバックの動作を明示的に定義してください。
Argo CD による調整 #
Argo CD は宣言された Git リビジョンを監視し、レンダリングされた望ましい状態とクラスターの状態を調整します。Argo CD の Helm ソースはチャートのレンダリングを提供します。GitOps で管理されるアプリケーションでは、オペレーターのローカル Helm クライアントではなく、Argo CD が調整を担う必要があります。
アクセス制御とリリース頻度が異なる場合は、アプリケーションのソースとデプロイ構成に別々のリポジトリまたはディレクトリを使用します。Argo CD のプロジェクト、リポジトリ、宛先、およびサービスアカウントを制限してください。自動プルーニングを有効にする前にドリフトを確認してください。プルーニングを行うと、望ましいマニフェストセットに存在しないリソースが削除されるためです。
コメント
GitHub で閲覧・コメントする(投稿にはログインが必要です)