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 プラットフォームを強化し、顧客のニーズを満たす最新のアプリケーションの開発と提供を加速します。

推薦する

クラウドネイティブ変革: スケーラブルな進化と文化的思考

[[416383]]いわゆる変革とは、構造形態、運営モデル、人々の物事に対する概念の根本的な変化のプ...

ウェブマスターネットワークニュース: 6桁ドメイン名の新時代が到来したかもしれない。警察がQvod屋台事件に介入

1. クアイボは今日トラブルに巻き込まれた:多数の警察がその巣を襲撃したKuaiBoが「心機一転」し...

dynaboot-XEN VPS 20% オフ/ドメイン名無料/512M メモリ 月額 8 ドル

dynaboot がプロモーション情報を公開する理由は、512M メモリを搭載した XEN を四半期...

スケーリングが12倍高速化されました! AWS Lambda 関数が大幅に改善されました!

編纂者:Xing Xuan制作 | 51CTO テクノロジースタック (WeChat ID: blo...

クラウド ストレージ アーキテクチャ フレームワークを設計するにはどうすればよいでしょうか?

新興インターネットビジネスの急増とビジネスデータの急速な増加により、クラウド ストレージ テクノロジ...

デスクトップ仮想化: 3つの主要プレーヤー、どれが勝つか見てみましょう

データ センター環境では、仮想マシンはさまざまなアプリケーションのさまざまなニーズを満たす最適なソリ...

分散トランザクションについてもう知らないとしたら、私は本当に怒ります!

最近、分散トランザクションに関するブログ投稿をいくつか読んでメモを取り、この記事にまとめました。 [...

Google Cloud Platform、アプリストアへの圧力が高まる中、手数料率を引き下げ

海外メディアの報道によると、アプリストアに対する圧力が高まり、大手テクノロジー企業に対してもグーグル...

議論: 記事の下部にリンクを追加できない理由

今日、パン・リクアンは奇妙な現象を発見しました。独立系ブログの記事は転載かオリジナルかに関わらず、記...

クラウドネイティブ開発でこのような問題点に遭遇したことはありませんか?

背景クラウドネイティブ時代において、国内外の多くのクラウドベンダーが強力な技術的配当をリリースしてい...

Nodeserv - $4.5/2g メモリ/50g ハードディスク/3T トラフィック/G ポート/フロリダ

NodeservのOVZはすごく安くて、今回はスタイルが変わったようですね?比較的一般的な価格の 4...

Yichao EyewearのLi Changli氏との対話:オンラインアイウェアのO2Oの道をリードし、変革する

O2O は、正式名称を Online to Offline といい、オンラインからオフラインへのイン...

草の根講堂の最初のゲスト、朱衛坤氏が、個人ウェブマスターの将来について語ります。

みなさんこんにちは。私は朱偉坤です。今日は Arui さんに招待されて、皆さんとシェアすることができ...

超格安: 2G (xen) メモリ、100G ハードディスク、月間トラフィック 3T、月額 10.5 ドル

新しい VPS マーチャントである speedyvds は、複数のデータセンターを持ち、暴走の可能性...

米国第2位の共同購入サイトがハッキングされ、5000万人のユーザーデータが流出

新浪科技ニュース:北京時間4月27日早朝のニュースで、米国第2位の共同購入サイトLivingSoci...