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

推薦する

企業はデジタル変革による苦痛を経験しています。プライベートクラウドは本当に万能薬なのでしょうか? 1 つの記事でクラウド コンピューティングを理解する

クラウド コンピューティングとクラウドには共通点があります。クラウドコンピューティングのリソース使用...

イベントマーケティングとアクティビティマーケティングの具体的な違い

現在、オンライン マーケティングでは、イベント マーケティングとアクティビティ マーケティングがます...

命名からコミュニケーションまで: モバイル インターネット チームが独自のブランドを構築する方法

前回の記事は「モバイルインターネットアプリプロモーションの最高レベル」と題し、主にアプリのブランドと...

技術的な乾物共有: HBase のデータから Kafka への移行の実践

1. 概要実際のアプリケーション シナリオでは、データは HBase クラスターに保存されますが、何...

リベートウェブサイトは、「既存ユーザーの維持」と「新規ユーザーの獲得」という2つのアプローチでユーザーを管理しています。

編集者注: 電子商取引は爆発的な成長期を過ぎました。依然として高い成長率を維持しているものの、小売業...

DockerコンテナにおけるUIDとGIDの仕組みを理解する

コンテナ内で実行されているプロセスとホスト システム間のユーザー名、グループ名、ユーザー ID (U...

ウェブサイトのおすすめ: RunfacesはFacebookのギャップを埋めるビデオソーシャルネットワーキングサイトです

Runfaces のスローガン: 「興味に基づいた動画を通じて新しい人々と出会う」ユーザーの個人ホー...

タオバオは300人以上の悪質な悪いレビュー投稿者をブラックリストに登録した

タオバオは7月2日、取り締まりの対象となる悪質なレビュー投稿者300人以上のリストを特定したと発表し...

buyvm: ロック解除されたストリーミング VPS を販売中。Netflix\Tiktok、Disneyplus\HBO\HULU\FOX など、米国とカナダの多数のストリーミング メディアに対応

buyvm は、複数のストリーミング メディアのロックを解除し、通常は厳しい IP 要件を持つ多くの...

IBM Hou Miao: 安定性と俊敏性を兼ね備えたハイブリッドクラウドプラットフォームを構築し、企業のデジタル変革を加速

[51CTO.comからのオリジナル記事] 安定性と俊敏性、データインテリジェンス、グリーンコンピュ...

Yituan.comはダブル12期間中も中小企業の発展を支援し続けます

アリペイの取引額は350億元で、ダイヤモンドは1個あたり2050万元、寝具は1個あたり300万元、資...

Baiduの製品を使用するメリットとデメリットの簡単な分析

多くの人が、Baidu Statistics、Baidu Space、Baidu Encyclope...

クラウドネイティブとは何か、そしてクラウドネイティブアプリケーションの12の要素を理解する

クラウド ネイティブという言葉は誰もが知っていると思います。しかし、「クラウド ネイティブとは正確に...

Azure Functions サーバーレス コンピューティングがついに Java に対応

[51CTO.com クイック翻訳] Microsoft の Azure Functions サーバ...

G銀行のフルスタッククラウド環境負荷分散サービス機能の実践 - 負荷分散サービスの主要技術の紹介

クラウド コンピューティングとクラウド ネイティブ テクノロジーの発展に伴い、主要なクラウド コンピ...