この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

OCIベースのHelmチャートリポジトリの使用

Helm v3では、Helmチャートを Open Container Initiative (OCI)アーティファクトとしてコンテナレジストリに保存することが導入されました。Rancher v2.9.0では、HTTPベースおよびGitベースのリポジトリと並行して OCIベースのHelmチャートリポジトリを追加できます。これは、OCIアーティファクトとして保存されたアプリをデプロイできることを意味します。

OCIベースのHelmチャートリポジトリを追加する

Rancher UIを通じてOCIベースのHelmチャートリポジトリを追加するには:

  1. *☰ > クラスター管理*をクリックします。

  2. アクセスしたいリポジトリを持つクラスターの名前を見つけてください。クラスターの行の最後にある*Explore*をクリックします。

  3. 左側のナビゲーションバーで、menu:Apps[Repositories]を選択します。

  4. 作成]をクリックします。

  5. レジストリの*名前*を入力してください。ターゲットとして*OCIリポジトリ*を選択します。

  6. レジストリの*OCIリポジトリホストURL*を入力します。レジストリエンドポイントには、OCI Helmチャートアーティファクト以外のものを含めてはいけません。アーティファクトはすべてユニークな名前を持っている必要があります。他の種類のファイルやアーティファクトを含むエンドポイントを追加しようとすると、OCIリポジトリは追加されません。

*OCI URL*フィールドを使用して、Rancherにインストール可能なレジストリからのチャートの数を微調整できます。より一般的なエンドポイントは、次の例が示すように、より多くのチャートを対象とします:

- `oci://<registry-host>`: Every chart in the registry becomes available for installation, regardless of namespace or tag.
- `oci://<registry-host>/<namespace>`: Every chart in the specified namespace within the registry becomes available for installation.
- `oci://<registry-host>/<namespace>/<chart-name>`: Only the specified chart and any associated tags or versions of that chart become available for installation.
- `oci://<registry-host>/<namespace>/<chart-name>:<tag>`: Only the chart with the specified tag becomes available for installation.
  1. 認証のセットアップ。認証フィールドから*Basicauth*を選択し、必要に応じてユーザー名とパスワードを入力します。そうでない場合は、*Authentication*シークレットを作成または選択します。完全な説明についてはAuthenticationを参照してください。

  2. (オプション)*CA Cert Bundle*フィールドにbase64エンコードされたDER証明書を入力します。このフィールドは、プライベートなOCIベースのHelmチャートリポジトリを持ち、その証明書をRancherに信頼させる必要がある場合に使用します。

  3. (オプション)SSLチェックを行わずに安全でない接続を許可するには、*TLS検証をスキップ*を選択します。Rancherがリポジトリにリクエストを送信する際にHTTPSの代わりにHTTPを使用するよう強制するには、*安全でないプレーンHTTP*を選択します。

  4. (オプション)リポジトリにレート制限ポリシーがあり、ステータスコード`429 Too Many Requests`で応答する可能性がある場合は、*指数バックオフ*の下のフィールドに入力してください。

    • 最小待機時間:Rancherが再試行する前に待機すべき最小の秒数です。デフォルトの設定は1です。

    • 最大待機時間:Rancherが再試行する前に待機すべき最大の秒数です。デフォルトは5秒です。

    • 最大再試行回数:デフォルトは5回の再試行です。

    これらの値が設定されると、Rancherは最小および最大待機値に基づいて`429`ステータスコードに応じてリクエストを間隔をあけて送信します。再試行間の待機時間は指数的に増加し、Rancherが設定された最大再試行回数を送信するまで続きます。詳細については、レート制限を参照してください。

  5. ラベルと注釈を追加します。

  6. 作成]をクリックします。

OCIリポジトリがアクティブになるまでに時間がかかる場合があります。これは特にOCIエンドポイントに複数のネームスペースが含まれている場合に当てはまります。

OCIベースのHelmチャートリポジトリの認証

RancherはOCIレジストリのBasicAuthをサポートしています。 BasicAuth Kubernetesシークレットを作成する必要があります。また、Rancher UIを通じてシークレットを作成することもできます.

OCIベースのHelmリポジトリにリンクされているCRDは`ClusterRepo`です。

OCIベースのHelmチャートリポジトリでHelmチャートを表示する

OCIベースのHelmチャートリポジトリでHelmチャートを表示するには、`Active`状態に達した後:

  1. *☰*をクリックします。左側のナビゲーションメニューにある*Explore Cluster*の下で、クラスターを選択します.

  2. menu:アプリ[チャート]をクリックしてください。

  3. ドロップダウンからOCIベースのHelmチャートリポジトリを選択します。

OCIベースのHelmチャートリポジトリを更新する

Rancherは6時間ごとにOCIベースのHelmチャートリポジトリを自動的に更新します。

すぐに更新する必要がある場合は、手動で更新を実行できます

OCIベースのHelmチャートリポジトリの設定を更新する

  1. *☰ > クラスター管理*をクリックします。

  2. アクセスしたいリポジトリを持つクラスターの名前を見つけてください。クラスターの行の最後にある*Explore*をクリックします。

  3. 左側のナビゲーションバーで、menu:Apps[Repositories]を選択します。

  4. OCIベースのHelmチャートリポジトリに関連する行を見つけて、*⋮*をクリックします。

  5. サブメニューから*設定を編集*を選択します。

OCIベースのHelmチャートリポジトリを削除する

  1. *☰ > クラスター管理*をクリックします。

  2. アクセスしたいリポジトリを持つクラスターの名前を見つけてください。クラスターの行の最後にある*Explore*をクリックします。

  3. 左側のナビゲーションバーで、menu:Apps[Repositories]を選択します。

  4. OCIベースのHelmチャートリポジトリに関連する行を選択し、*削除*をクリックします。

RancherにおけるOCIベースのHelmチャートリポジトリのサイズ制限

セキュリティ上の懸念から、OCIベースのリポジトリを通じてデプロイできるHelmチャートのサイズや、単一のOCIエンドポイント内でHelmチャートを説明するために使用できるメタデータの量には制限があります。

Rancherは最大20MBのOCI Helmチャートをデプロイできます。

OCIベースのHelmチャートリポジトリのレート制限

異なるOCIレジストリは、異なる方法でレート制限を実装しています。

ほとんどのサーバーは、レート制限が解除されるまでの待機時間を示す`Retry-After`ヘッダーを返します。

Docker Hubは、すべての割り当てられたリクエストが完了すると、`429`のステータスコードを返します。また、レート制限ポリシーを説明する`RateLimit-Remaining`のヘッダーも返します。

Rancherは現在、`Retry-After`のヘッダーを確認しています。また、Docker Hubスタイルのレスポンス(ステータスコード`429`と`RateLimit-Remaining`のヘッダー)を処理し、新しいリクエストを行う前に自動的に待機します。`Retry-After`またはDocker Hubスタイルのレスポンスを処理する際、Rancherは`ExponentialBackOff`の値を無視します。

もし、`Retry-After`または`RateLimit-Remaining`のヘッダーを実装していないOCIベースのHelmチャートリポジトリがあり、いつかレート制限される可能性があると思う場合は、リポジトリを追加する際に*Exponential Back Off*の下のフィールドを記入してください。

例えば、`Retry-After`のヘッダーを返さないOCIベースのHelmチャートリポジトリがあり、サーバーが24時間で50リクエストを許可していることが分かっている場合、Rancherに*Min Wait*の値として*86400*秒、*Max Wait*の値として*90000*秒、*Max Number of Retries*の値として*1*を提供できます。その後、Rancherがサーバーによってレート制限された場合、Rancherは再試行する前に24時間待機します。リクエストは成功するはずです。なぜなら、Rancherは前の24時間に他のリクエストを送信していないからです。

OCIベースのHelmレジストリのトラブルシューティング

  • ログ情報を強化するために、Rancherをデプロイする際にデバッグオプションを有効にしてください

  • リポジトリの内容とRancherの間に不一致がある場合、最初の手段としてクラスターリポジトリを更新するべきです。不一致が続く場合は、RancherからOCIベースのHelmチャートリポジトリを削除し、再度追加してください。リポジトリを削除しても、すでにインストールされているHelmチャートは削除されません。

  • OCIベースのHelmチャートリポジトリを通じてインストールされたアプリは、Rancherがアップグレード可能なバージョン情報を表示する方法に関する既知の問題の影響を受けます。詳細については、*Helm Charts and Apps*の制限セクションをご覧ください。