HelmはHarborに保存されたチャートに基づいてサービスを迅速に公開します

HelmはHarborに保存されたチャートに基づいてサービスを迅速に公開します

概要

Harbor はバージョン v1.6 で Helm Chart リポジトリ機能のサポートを開始したため、別の Helm Chart システムを展開しなくても Harbor を使用してイメージと Helm Chart を同時に管理できるようになりました。 Harbor では、チャート リポジトリは ChartMuseum によってプラグインとして提供されており、インストールするかどうかを選択できます。

ChartMuseum: OCI に準拠していない Helm Charts を管理するための API を提供します。 ChartMuseum コンポーネントをインストールした後、ユーザーが「helm」コマンドを使用して Chart を Harbor にプッシュまたはプルすると、Harbor の Core コンポーネントが最初にリクエストを受信し、検証後に Chart ファイルの読み取りと書き込みのためにリクエストを ChartMuseum に転送します。

OCI 仕様と互換性のある Helm Charts がコミュニティで広く受け入れられるようになったため、Helm Charts はアーティファクトの形式で Harbor に保存および管理できるようになり、ChartMuseum に依存する必要がなくなりました。したがって、Harbor は今後のバージョンで ChartMuseum のサポートを削除します。

廃止されたとはいえ、Harbor をチャートの保存に使用できないという意味ではありません。代わりに、OCI チャートに置き換えられます。

  • Chartmuseum は v2.6.0 で非推奨となり、v2.8.0 で削除されました。詳細については、ディスカッションを参照してください: https://github.com/goharbor/harbor/discussions/15057 公証人 (署名者とサーバー) は v2.6.0 以降非推奨となり、v2.8.0 で削除されます。詳細については、ディスカッションをご覧ください: https://github.com/goharbor/harbor/discussions/16612
  • Helm Chart の保存をサポートするには、Harbor のバージョンが 1.6+ から 2.8.0 である必要があります (私は 2.6.2 を使用しています)。
  • デフォルトでは、Harbor の新しいバージョンではチャート リポジトリ サービスが有効になりません。 Harbor をインストールするときに、--with-chartmuseum パラメータを指定する必要があります。
  • プロジェクト chartrepo (パブリック プロジェクト) を作成します。

環境説明

Harbor バージョン: 2.6.2 Harbor アドレス: https://192.168.2.30:443 デプロイメント パス: /app/harbor 証明書の場所: /app/harbor/ssl/

Chartmuseum コンポーネントのインストール

2.1 設定ファイルを変更する

absolute_url パラメータで ChartMuseum コンポーネントを使用する場合、クライアントが取得した Chart の index.yaml に含まれる URL が絶対パスであるかどうか。この項目が構成されていない場合、ChartMuseum コンポーネントは相対パスを返しますが、これはデフォルトで無効になっています。

 $ vim ハーバー.yml
チャート:
# absolute_url の値を enabled に変更すると、チャート内の絶対 URL が有効になります
absolute_url :有効

有効にすると絶対パスが使用されます。

2.2 ストップハーバー

 $ docker-compose を停止します

2.3 注入構成

./prepare を実行して、新しい構成を各コンポーネントに挿入します。

 $ ./準備

2.4 ChartMuseumのインストール

install.sh を実行する際に、--with-chartmuseum パラメータを使用してチャート プラグインをインストールすると、インストール後に Harbor が自動的に起動します。

 $ ./install .sh --with-notary --with-trivy --with-chartmuseum
----Harbor が正常にインストールされ、起動されました。---- # この情報を出力すると、インストールが成功したことを意味します

2.5 コンポーネントのサービスステータスを確認する

docker-compose ps コマンドを実行すると、harbor コンポーネントに追加の chartmuseum コンテナがあることがわかります。

 $ docker - psを作成

2.6 chartmuseumコンポーネントがインストールされていることを確認する

Harbor UI管理インターフェースにログインします: [プロジェクト] ==> [ライブラリ] ==> [Helm Charts]

helm-pushプラグインをインストールする

準備したチャート パッケージは Harbor UI インターフェイスを介して Harbor に直接アップロードできますが、コマンド ラインを介してチャートをアップロードおよびダウンロードするには、helmpush プラグインをインストールする必要があります。

通常、helm がインストールされていることを前提として、この操作は Kubernetes のマスター ノードで実行されます。

3.1 オンライン直接インストール

 $ helmプラグインをインストールhttps://github.com/chartmuseum/helm-push
helm - push v0.9.0ダウンロードインストール...
https://github.com/chartmuseum/helmpush/releases/download/v0.9.0/helmpush_0.9.0_linux_amd64.tar.gz
インストールされたプラグイン: push
$ helmプラグインリスト
名前 バージョン 説明
cm - push 0.10 .3チャートパッケージをChartMuseumにプッシュ
$ls /ルート/ .local / share / helm /プラグイン/ helmpush / bin / helmpush
/root/.local/share/helm/plugins/helm - push / bin / helmpush

ChartパッケージをHarborにアップロードする

4.1 Harbor UI にチャートをアップロードする

Harbor管理インターフェースにログインし、チャートパッケージをアップロードするプロジェクトを入力し、[Helm Charts]を選択し、[Upload]ボタンを選択して、ローカルコンピュータで作成したチャートパッケージをHarborにアップロードします。

次に[アップロード]をクリックします。

4.2 コマンドライン経由でチャートをアップロードする

1) テスト用のチャートパッケージをダウンロードする

 $ helm リポジトリリスト
名前 URL
ビットナミhttps://charts.bitnami.com/bitnami
ali -インキュベーターhttps://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/
$ helm 検索リポジトリ bitnami |- 2
名前 チャートバージョン アプリバージョン 説明
bitnami / airflow 14.0 .13 2.5 .1 Apache Airflow は、... を表現し実行するためのツールです
$ ヘルム プル ビットナミ/エアフロー
$ ls
エアフロー- 14.0.13.tgz

2) Harborリポジトリを追加する

  • https関連の証明書をコピーする
 $ scp 192.168 .2 .30 : /app/harbor/ssl/{ca.pem、harbor.pem、harbor-key.pem}./
  • リポジトリを追加
 $ helm repo add harbor - library https://192.168.2.30:443/chartrepo/library --username admin --password Harbor12345 \
--ca ファイル ca.pem --key ファイル harbor-key.pem --cert ファイル harbor.pem
「harbor-library」がリポジトリに追加されました

harbor-library: カスタムリポジトリ名; https://192.168.2.30:443/chartrepo/library はチャートの接続アドレスで、chartrepo は固定形式であり、「library」はチャートが配置されているプロジェクトの名前です。実際の環境に合わせて変更してください。 --username​: Harbor ユーザー名を指定します (ユーザーにはプロジェクト オブジェクトへの権限が必要です)。 --password​: パスワードを指定します。 --ca-file​: Harbor 証明書の発行者証明書。 --key-file​: Harbor の秘密鍵。 --cert-file: Harbor 証明書を指定します。

パラメータ

意味

Cfssl ツールのフォーマット

OpenSSL ツール形式

--caファイル

CA証明書

約 pem

ca.crt

--cert-file

証明書ファイル

港.pem

港.crt

--キーファイル

秘密鍵

ハーバーキー.pem


  • 追加が成功したかどうかを確認する
 $ helm リポジトリリスト
名前 URL
-ライブラリhttps://192.168.2.30:443/chartrepo/library

3) コマンドラインからパッケージ化されたアプリケーションをHarborにプッシュする

フォーマット: helm cm-push チャート パッケージ リポジトリ名

 $ helm cm -プッシュエアフロー- 14.0 .13 .tgzハーバー-ライブラリ \
--ca ファイル ca.pem --key ファイル harbor-key.pem \
--cert-file harbor.pem

4) アップロードが成功したかどうかを確認する

Harborをベースとした海図パッケージ公開サービス

Helmパッケージ管理ツールを使用して、Harborに保存されているチャートパッケージをKubernetesクラスターにデプロイします。

5.1 チャートの概要を表示

Harbor UI でチャート名をクリックすると、チャートの紹介、インストール、アンインストール、構成など、チャートの概要情報が表示されます。概要情報に基づいて、関連する管理コマンドを使用できます。

図5.1-1

図5.1-2

図5.1-3

5.2 Harborをチャートリポジトリとして追加する

追加されたコマンド形式:

 $ helm repo add --ca-file <caファイル> \
--cert-file <証明書ファイル> --key-file <鍵ファイル> \
--username <ユーザー名> \
--password <パスワード> <リポジトリ名> https://192.168.2.22/chartrepo/lidabai

1) 港湾関係証明書のコピー

ハーバー関連の証明書を、Helm が配置されているサーバー (通常は Kubernetes クラスターのマスター ノード) にコピーします。

 $ scp 192.168 .2 .30 : /app/harbor-cert/{ca.pem、harbor.pem、harbor-key.pem}./

2) 港のチャートリポジトリを追加する

 $ helm repo にmy - harbor https://192.168.2.22/chartrepo/lidabai追加します
--ユーザー名 admin --パスワード Harbor12345 \
--ca ファイル ca.pem --cert ファイル harbor.pem --key ファイル harbor-key.pem

出力:

 「my-harbor」がリポジトリに追加されました

追加が成功したことを示します。

3) 確認を表示

 $ helm リポジトリリスト
名前 URL
アリユンhttps://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
https://192.168.2.22/chartrepo/lidabai

5.3 出版サービス

 $ helm install --ca-file <CA ファイル> --cert-file <証明書ファイル> --key-file <キーファイル> \
--username=<ユーザー名> --password=<パスワード> --version 2.0.1 <リポジトリ名>/memcached
  • 検索チャート
 $ helm リポジトリを検索 my - harbor
名前 チャートバージョン アプリバージョン 説明
my - harbor / memcached 2.0 .1無料オープンソース高性能配布...
  • チャートのインストール
 $ helm インストール memcached -テスト \
--ca ファイル ca.pem --cert ファイル harbor.pem \
--key-file ハーバーキー.pem \
> --username=admin --password=Harbor12345 \
--バージョン 2.0.1 my-harbor/memcached

<<:  企業はどのように Harbor を活用して生産性を向上できるのでしょうか?

>>:  VMware は VMware Tanzu および VMware Aria プラットフォームを強化し、顧客のニーズを満たす最新のアプリケーションの開発と提供を加速します。

推薦する

ウェブサイト運営において無視できない最適化の詳細

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています多くの S...

greenvaluehost-5 USD/4 GB RAM/200 GB HDD/300 MB 無制限

Greenvaluehost は、月額料金がわずか 5 ドルの特別版スーパー VPS をリリースしま...

XenS の「言葉では言い表せない」年齢 - 20 年 / Xen / 256 MB のメモリ / 150 g のハードディスク / 500 g のトラフィック

drserver.net のストレージ VPS ブランドである XenS の「言葉にできない」時代は...

ウェブサイトの最適化中に、ウェブサイトのどの要素に特に注意を払うべきでしょうか?

ウェブサイトの最適化中に、ウェブサイトのどの要素にもっと注意を払う必要がありますか? SEO最適化ワ...

Baidu はスナップショットの問題を疑い、多くのウェブサイトがロールバック

今日はとても不思議な日です。Baiduのスタッフのミスなのか、コンピューターの不具合なのかは分かりま...

KubeSphere で高度に自動化されたマイクロサービスの可観測性を実現する

Kubernetes は、開発者にマイクロサービスの導入において大きな利便性をもたらしましたが、同時...

StreamNativeは、クラウドネイティブ業界の高速な前進を支援するために、Tencent Cloud Native Acceleratorに正式に参加しました。

近年、インターネットのイノベーションは、消費者向けインターネットから産業向けインターネットへと変化し...

KubernetesはITスキルの価値を高める

Kubernetes は、プラットフォーム間での開発、テスト、および生産プロセスの一貫性の向上を目指...

新ブランド、非公開にしたくないIPマーケティング手法!

2019年、世界経済は回復し、成長しています。2019年の世界経済は5.5%成長し、中国の経済成長率...

クラウドネイティブのコンテキストで JVM メモリを構成する方法

背景少し前に、ビジネス開発チームから、アプリケーションのメモリ使用量が非常に高く、頻繁に再起動が発生...

Raysync: プロフェッショナルな大容量ファイル転送ソリューション

転送速度が遅い、接続が切れる、プライバシーが漏れる、操作が不便... 個人でも企業でも、ファイル(特...

.NET とクラウド コンピューティング: 統合アプリケーションとベスト プラクティス

クラウド コンピューティングの急速な発展に伴い、クラウド コンピューティングが提供する弾力性、拡張性...