Harbor v2.9.0 のバージョン変更とオフライン展開

Harbor v2.9.0 のバージョン変更とオフライン展開

バージョンの変更

1.1 更新内容

  • セキュリティ センターの管理者ユーザーは、スキャン済みおよび未スキャンのアイテムの数、リスクのあるアイテムと CVE の識別、複数の組み合わせ基準を使用した脆弱性の高度な検索機能など、貴重なセキュリティ情報にアクセスできるようになりました。
  • GC の機能強化により、詳細な GC 実行履歴を通じて可視性が向上し、並列削除が可能になり、GC トリガーが高速化されます。
  • OCI Distribution Spec v1.1.0-rc2 のサポート Harbor は OCI Distribution Spec v1.1.0-rc2 をサポートするようになり、参照としてシンボル署名と Nydus 変換のサポートが追加されました。
  • カスタム バナー メッセージ 管理者は、Harbor Web ページの上部に表示されるカスタム バナー メッセージを設定できるようになりました。これは、本番環境でも実用的な機能です。 Harbor の運用・保守時には、複数のプロジェクトのイメージが Harbor に保存されます。保存容量がいっぱいになった場合、管理者が画像をクリーンアップしなくても、ユーザーに画像をクリーンアップするように「通知」を発行できるため、重要な画像が誤って削除されることを防止できます。

図に示す関数の使用方法:

写真

  • クォータ更新プロバイダーは、イメージをプッシュする際のクォータ更新中に楽観的ロックに Redis を活用する新しいメカニズムを導入します。この機能を有効にして使用する手順については、https://github.com/goharbor/perf/wiki/Quota-Update のドキュメントを参照してください。
  • Notary の削除 バージョン v2.9.0 以降、Harbor のユーザー インターフェイスまたはバックエンドには Notary が含まれなくなりました。詳細については、こちらのページをご覧ください。

1.2 既知の問題

バージョン 20.10.10 より前の Docker を使用して Harbor 2.9.0 をオンライン/オフラインでインストールすると、Harbor データベース コンテナーを起動できないという問題が発生する可能性があります。この問題は追跡中です (#19141)。この特定の問題の詳細については、このページ (timescale/timescaledb-docker-ha#260) をご覧ください。

この問題を回避するには、オンライン/オフライン インストーラーで Harbor v20.10.10 を使用する場合は、Docker バージョンが 2.9.0 以上であることを確認することをお勧めします。

インストールと展開(オフライン)

複数のバージョンに適用され、オフライン インストールの手順は基本的に変更されていません。

2.1 ホストの初期化

① SELinuxとスワップを無効にする
$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  • スワップを無効にする
$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab $ swapoff -a
② リポジトリソースの設定
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo $ wget http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo $ yum clean all
③ docker-ceをインストールする
  • rpmパッケージをダウンロードしてインストールします
$ mkdir docker-ce $ yum install -y docker-ce --downloadonly --downloaddir=./docker-ce/ $ yum install -y rpm/*.rpm
  • Dockerを起動する
$ systemctl enable --now docker
  • dockerの設定を変更し、insecure-registriesパラメータの後にHarborアドレスとポートを入力します。
 $ cat /etc/docker/daemon.json { "registry-mirrors": ["http://127.0.0.1:65001"], "insecure-registries": ["192.168.2.19:443","134.194.15.150:1021"], "storage-driver": "overlay2", "exec-opts": ["native.cgroupdriver=systemd"] , "graph": "/dcos/data/docker", "log-driver": "json-file", "log-opts": { "max-size": "500m" } }
  • サービスを再起動する
$ systemctl daemon-reload && systemctl restart docker
④ docker-composeをインストールする

docker-composeのバージョンは1.18.0以上です

$ wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 $ mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose $ chmod +x /usr/local/bin/docker-compose $ docker-compose -v docker-compose version 1.29.2, build 5becea4c
⑤ カーネルパラメータを設定する

必要なカーネルパラメータを 3 つ設定します。その他のカーネルパラメータは自分で追加できます。

 $ modprobe br_netfilter #加载内核模块(临时) $ cat > /etc/sysctl.conf << EOF net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF $ sysctl -p

net.ipv4.ip_forward: ルーティング転送を有効にします (このパラメータが設定されていない場合、ホストを再起動したときにサービスの状態は正常ですが、サーバーにアクセスできません)

⑥ cfssl証明書ツールをインストールする(オプション)

https モードでは証明書が必要です。ここでは、cfssl を使用して Harbor に証明書を発行します。

バイナリ実行ファイルをダウンロードし、/usr/local/bin/ に配置して実行権限を付与します。

 $ wget -c https://github.com/cloudflare/cfssl/releases/download/v1.6.0/cfssl_1.6.0_linux_amd64 -O /usr/local/bin/cfssl $ wget -c https://github.com/cloudflare/cfssl/releases/download/v1.6.0/cfssljson_1.6.0_linux_amd64 -O /usr/local/bin/cfssljson $ wget -c https://github.com/cloudflare/cfssl/releases/download/v1.6.0/cfssl-certinfo_1.6.0_linux_amd64 -O /usr/local/bin/cfssl-certinfo $ chmod +x /usr/local/bin/cfssl* cfssl version Version: 1.6.0 Runtime: go1.18

2.2 HTTPS証明書の発行(オプション)

http モードではこの操作は必要ありません。セキュリティを確保するために、実稼働環境では https モードが推奨されます。

Harbor に証明書を発行するには cfssl を使用します。詳細については、記事をご覧ください:https://mp.weixin.qq.com/s/T9xug20FNU3zOodno5IwPA

① 証明機関証明書(CA)を生成する

独自のCA認証局を構築し、インストールしたcfsslツールを使用してHarborの証明書を発行します。

  • CAのデフォルト構成ファイルを生成および変更する
$ mkdir -p /app/harbor/ssl/ #创建证书存放目录$ cfssl print-defaults config > /app/harbor/ssl/ca-config.json #生成默认配置文件$ cat <<EOF > /app/harbor/ssl/ca-config.json { "signing": { "default": { "expiry": "87600h" }, "profiles": { "harbor": { "expiry": "87600h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] } } } } EOF

写真

  • デフォルトのCSRリクエストファイルを生成および変更する
$ cfssl print-defaults csr > /app/harbor/ssl/ca-csr.json $ cat <<EOF > /app/harbor/ssl/ca-csr.json { "CN": "harbor", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "Beijing", "L": "Beijing" } ] } EOF

写真

  • CA証明書を初期化する
$ cfssl gencert -initca /app/harbor/ssl/ca-csr.json | cfssljson -bare /app/harbor/ssl/ca $ ls /app/harbor/ssl/ ca-config.json ca.csr ca-csr.json ca-key.pem ca.pem

現在のディレクトリに ca.csr、ca-key.pem、ca.pem という 3 つの新しいファイルが生成されていることがわかります。 ca-key.pem と ca.pem は CA 関連の証明書であり、この CA を通じて Harbor に証明書が発行されます。

写真

② CAが港湾局に証明書を発行

Harbor は、申請書に類似したリクエスト ファイルを使用して CA に証明書を申請し、CA は構成ファイル (証明書ポリシー) とリクエスト ファイル (申請書) に基づいて Harbor に証明書を発行します。

  • Harbor証明書要求ファイルの作成と変更

デフォルトのリクエスト ファイルを作成するには、次のコマンドを使用しますが、一部のデフォルト パラメータを変更する必要があります。

 $ cfssl print-defaults csr > /app/harbor/ssl/harbor-csr.json $ cat /app/harbor/ssl/harbor-csr.json { "CN": "harbor", "hosts": [ "127.0.0.1", "192.168.2.19", "lidabai.harbor.cn" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "BeiJing", "L": "BeiJing" } ] }

写真

  • CAがハーバーに証明書を発行

CA は要求ファイルを使用して、構成に従って Harbor に証明書を発行します。

 $ cfssl gencert -ca=/app/harbor/ssl/ca.pem \ -ca-key=/app/harbor/ssl/ca-key.pem \ -cnotallow=/app/harbor/ssl/ca-config.json \ -profile=harbor /app/harbor/ssl/harbor-csr.json | cfssljson -bare /app/harbor/ssl/harbor $ ls /app/harbor/ssl/ ca-config.json ca.csr ca-csr.json ca-key.pem ca.pem harbor.csr harbor-csr.json harbor-key.pem harbor.pem $ cp harbor.pem harbor-key.pem /app/harbor/ssl/

写真

インストール

①オフラインインストールパッケージをダウンロードする

$ export HARBOR_VERSION=2.9.0 #声明变量,指定版本号$ wget https://github.com/goharbor/harbor/releases/download/v$HARBOR_VERSION/harbor-offline-installer-v$HARBOR_VERSION.tgz $ tar -zxvf harbor-offline-installer-v$HARBOR_VERSION.tg z -C /app/ harbor/harbor.v$HARBOR_VERSION.tar.gz harbor/prepare harbor/LICENSE harbor/install.sh harbor/common.sh harbor/harbor.yml.tmpl

② 画像をインポートする

$ docker load -i harbor.v$HARBOR_VERSION.tar.gz

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

構成テンプレートを構成ファイルとしてコピーした後、構成パラメータを変更します。

 $ cp harbor.yml.tmpl harbor.yml $ vim harbor.yml hostname: lidabai.harbor.com http: port: 80 # 启用https https: port: 443 certificate: /app/harbor/ssl/harbor.pem #Harbor的证书private_key: /app/harbor/ssl/harbor-key.pem #Harbor的证书私钥metric: enabled: true #开启Harbor Metrics监控port: 9090 path: /metric

必要に応じて他の構成パラメータを変更します。

④ 負荷設定

インストールディレクトリで ./prepare を実行して、各コンポーネントの構成を読み込みます。

 $ ./prepare

写真

⑤ Harborをインストールして起動する

$ ./install.sh --with-trivy

写真

写真

✔というメッセージが表示されたら、インストールは成功したことを意味します。

サービス検証

3.1 サービスとコンポーネントのステータスの確認

$ docker-compose ps

写真

サービスは普通です!

Harbor UIにログイン

ブラウザにhttps://192.168.2.19:443と入力してください

写真

写真

写真

写真

ログインOKです!

参考文献

https://github.com/goharbor/harbor/releases

<<:  エッジコンピューティングの探究: Amazon と Facebook のユースケースを詳しく見る

>>:  クラウドとオンプレミスの長所、短所、ユースケース

推薦する

徹底分析:数千万人のユーザーがいる情報フローチャネルに広告を掲載する方法!

情報フロー広告は誰もが知っていると思います。毎日バスで見かける今日頭条や知乎はすべて情報フロー広告で...

2019年のクラウド業界の展望: ハイブリッドクラウド管理は企業にとっての悩みの種に

ジャック・マー氏はかつてクラウドコンピューティングとビッグデータを「21世紀の石油」に例えた。この予...

会話型ソフトウェア開発について

大規模な言語モデルを活用してコードを生成することは、人生を変える一つの方法ですが、ソフトウェア開発プ...

ハイブリッドクラウドにおけるDevOpsのベストプラクティス

近年、柔軟性、パフォーマンス、スケーラビリティの向上を目的としたさまざまなツール、テクニック、フレー...

スマートホストはどうですか?タンパ(フロリダ - 米国 - 北部)データセンターの VPS の簡単なレビュー

Smarthostは、米国フロリダ州の北西海岸のタンパにVPSなどのサービスを展開しています。メキシ...

Buyvm ラスベガス データセンター 高性能 AMD シリーズ VPS シンプルレビュー

ウェブマスターはかつて、buyvm はウェブサイト構築 + ストレージのコスト効率の高いソリューショ...

マルチクラウド環境で成功するために必要なこと

[[341783]] [51CTO.com クイック翻訳] 企業がビジネス上の問題を解決するための万...

SEOを学ぶ際に初心者が知っておくべきこと

厳密に言えば、蘇州 SEO の Lao Ding は実は初心者です。彼は SEO に 8 か月近く関...

Baidu: 何を信頼すればいいですか? - A5 Webmaster Network

10月16日にウェブサイトのトラフィックが急減して以来、著者は状況を改善するためにさまざまな対策を講...

日本の SEO プロジェクトはどのように機能しますか?

今日の午後、ロビンは日本の SEO のニーズを持つクライアントからの相談を受けました。コミュニケーシ...

Weiqun.comドメイン名が58万元で売却、購入者はSinaとみられる

9月12日ニュース(記者張林)9月12日、情報筋によると、weiqun.comドメイン名は最近取引に...

Hupu Cheng Hang: 垂直型ウェブサイト向けのモバイル インターネットへのチケットを入手する方法

4月17日から18日にかけて、iResearch Consulting Groupが主催する第9回i...

ネットワークマーケティングの実行を改善するための4つの重要なポイント

時々、人々は絶望的な状況に追い込まれたときに初めて本当に注意を払い、行動を起こします。そのため、私が...

羅永浩とのライブ配信の1年

羅永浩は2019年4月1日に初の生放送を開始し、総取引額は1億1000万元、視聴者数は5000万人近...

例の共有ウェブサイトは、公開されたその日に含まれ、ランキングされました(2)

前回、オンラインになったその日にインデックスされ、ランキングされた共有ウェブサイトの例(1)では、新...