この記事では、Harbor アーキテクチャの構成と、実行時に各コンポーネントを使用する方法について説明します。 建築 コンテナ情報 [root@liumiao 港]# docker-compose ps 名前 コマンド 状態 ポート ------------------------------------------------------------------------------------------------------------------------------------------------ harbor-adminserver /harbor/start.sh アップ harbor-db /usr/local/bin/docker-entr ... 3306/tcp を起動 harbor-jobservice /harbor/start.sh アップ harbor-log /bin/sh -c /usr/local/bin/ ... 127.0.0.1:1514->10514/tcp が起動しました harbor-ui /harbor/start.sh アップ nginx nginx -g デーモンをオフ; 0.0.0.0:443->443/tcp、0.0.0.0:4443->4443/tcp、0.0.0.0:80->80/tcp が起動しています redis docker-entrypoint.sh redis ... 6379/tcp を起動 レジストリ /entrypoint.sh サーブ /etc/ ... 5000/tcp をアップ [root@liumiao harbor]# 具体的な指示 プロキシ プロキシは nginx をリバース プロキシとして使用し、プロセス全体の中核は nginx 構成ファイルにあります。次の構成ファイルを通じて、さまざまな他のコンポーネントを統合するための harbor の指示を明確に確認できます。実際の実装は基本的に nginx の設定に依存します。 [root@liumiao 港]# ls ライセンス 共通 docker-compose.notary.yml ha harbor.v1.5.2.tar.gz open_source_license 通知 docker-compose.clair.yml docker-compose.yml harbor.cfg install.sh 準備 [root@liumiao harbor]# cat common/config/nginx/nginx.conf ワーカープロセスは自動です。 イベント { ワーカー接続 1024; epoll を使用します。 multi_accept オン; } http { tcp_nodelay オン; # これは、すべてのケースでリクエストのバッファリングを無効にするために必要です プロキシ_http_バージョン 1.1; アップストリームレジストリ { サーバーレジストリ:5000; } アップストリームUI{ サーバーUI:8080; } ログフォーマット timed_combined '$remote_addr - ' '"$request" $status $body_bytes_sent' '"$http_referer" "$http_user_agent" ' '$request_time $upstream_response_time $pipe'; access_log /dev/stdout タイムド_結合; サーバー{ 聞く 80; server_tokens オフ; # 大きな画像のアップロード時に HTTP 413 を回避するために制限を無効にします クライアントの最大ボディサイズ 0; 位置 / { proxy_pass http://ui/; proxy_set_header ホスト $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Nginx インスタンスなどの他のプロキシの背後に Harbor を設定する場合、プロキシにすでに同様の設定がある場合は、以下の行を削除します。 proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering をオフ; proxy_request_buffering をオフ; } 場所 /v1/ { 404 を返します。 } 場所 /v2/ { proxy_pass http://ui/registryproxy/v2/; proxy_set_header ホスト $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Nginx インスタンスなどの他のプロキシの背後に Harbor を設定する場合、プロキシにすでに同様の設定がある場合は、以下の行を削除します。 proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering をオフ; proxy_request_buffering をオフ; } 場所 /サービス/ { proxy_pass http://ui/service/; proxy_set_header ホスト $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Nginx インスタンスなどの他のプロキシの背後に Harbor を設定する場合、プロキシにすでに同様の設定がある場合は、以下の行を削除します。 proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering をオフ; proxy_request_buffering をオフ; } 場所 /サービス/通知 { 404 を返します。 } } } [root@liumiao 港]# データベース MariaDB 10.2.14が使用されており、ハーバーのデータベース名はレジストリであることがわかります。 [root@liumiao harbor]# docker exec -it harbor-db sh sh-4.3#mysql -uroot -pliumiaopw MariaDB モニターへようこそ。コマンドは ; または \g で終わります。 MariaDB接続IDは21です サーバーバージョン: 10.2.14-MariaDB ソース配布 Copyright (c) 2000、2018、Oracle、MariaDB Corporation Ab およびその他。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 MariaDB [(なし)]> データベースを表示します。 +--------------------+ | データベース | +--------------------+ | 情報スキーマ | |mysql | | パフォーマンススキーマ | | レジストリ | +--------------------+ セット内の 4 行 (0.00 秒) MariaDB [(なし)]> データベーステーブルの情報を確認すると、この使用モードの現在のバージョンでは、データベースには次のように約20個のテーブルがあることがわかります。 MariaDB [(なし)]> レジストリを使用します。 テーブル名と列名の補完のためのテーブル情報の読み取り -Aでこの機能をオフにすると起動が速くなります。 データベースが変更されました MariaDB [レジストリ]> テーブルを表示します。 +---------------------------------+ | レジストリ内のテーブル | +---------------------------------+ | アクセス | | アクセスログ | | アレンビックバージョン | |clair_vuln_タイムスタンプ| |港のラベル| | 港湾資源ラベル | | 画像スキャンジョブ | | 画像スキャンの概要 | | プロジェクト | | プロジェクトメンバー | | プロジェクトメタデータ | | プロパティ | | レプリケーション即時トリガー | | レプリケーションジョブ | | レプリケーションポリシー | | レプリケーションターゲット | | リポジトリ | | 役割 | | ユーザー | | ユーザーグループ | +---------------------------------+ セット内の行数は 20 です (0.00 秒) MariaDB [レジストリ]> ログコレクター デフォルトでは、ハーバーのログは次のディレクトリに収集され、管理されます。 [root@liumiao harbor]# ls /var/log/harbor adminserver.log jobservice.log mysql.log proxy.log redis.log registry.log ui.log [root@liumiao 港]# ドッカーの作成 [root@liumiao harbor]# cat docker-compose.yml バージョン: '2' サービス: ログ: イメージ: vmware/harbor-log:v1.5.2 コンテナ名: ハーバーログ 再起動: 常に ボリューム: - /var/log/harbor/:/var/log/docker/:z - ./common/config/log/:/etc/logrotate.d/:z ポート: - 127.0.0.1:1514:10514 ネットワーク: -港 レジストリ: イメージ: vmware/registry-photon:v2.6.2-v1.5.2 コンテナ名: レジストリ 再起動: 常に ボリューム: - /データ/レジストリ:/ストレージ:z - ./common/config/registry/:/etc/registry/:z ネットワーク: -港 環境: -GODEBUG=netdns=cgo 指示: ["サーブ", "/etc/registry/config.yml"] 依存: -ログ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: 「レジストリ」 マイスク: イメージ: vmware/harbor-db:v1.5.2 コンテナ名: harbor-db 再起動: 常に ボリューム: - /data/データベース:/var/lib/mysql:z ネットワーク: -港 環境変数: - ./common/config/db/env 依存: -ログ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: "mysql" 管理サーバー: イメージ: vmware/harbor-adminserver:v1.5.2 コンテナ名: ハーバー管理サーバー 環境変数: - ./common/config/adminserver/env 再起動: 常に ボリューム: - /data/config/:/etc/adminserver/config/:z - /data/secretkey:/etc/adminserver/key:z - /データ/:/データ/:z ネットワーク: -港 依存: -ログ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: "adminserver" ユーザ: イメージ: vmware/harbor-ui:v1.5.2 コンテナ名: harbor-ui 環境変数: ./common/config/ui/env を参照してください。 再起動: 常に ボリューム: - ./common/config/ui/app.conf:/etc/ui/app.conf:z - ./common/config/ui/private_key.pem:/etc/ui/private_key.pem:z - ./common/config/ui/certificates/:/etc/ui/certificates/:z - /data/secretkey:/etc/ui/key:z - /data/ca_download/:/etc/ui/ca/:z - /data/psc/:/etc/ui/token/:z ネットワーク: -港 依存: -ログ -管理者サーバー - レジストリ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: "ui" ジョブサービス: イメージ: vmware/harbor-jobservice:v1.5.2 コンテナ名: ハーバージョブサービス 環境変数: - ./common/config/jobservice/env 再起動: 常に ボリューム: - /data/job_logs:/var/log/jobs:z - ./common/config/jobservice/config.yml:/etc/jobservice/config.yml:z ネットワーク: -港 依存: - レディス - ユーアイ -管理者サーバー ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: "jobservice" レディス: イメージ: vmware/redis-photon:v1.5.2 コンテナ名: redis 再起動: 常に ボリューム: - /データ/redis:/データ ネットワーク: -港 依存: -ログ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: "redis" プロキシ: イメージ: vmware/nginx-photon:v1.5.2 コンテナ名: nginx 再起動: 常に ボリューム: - ./common/config/nginx:/etc/nginx:z ネットワーク: -港 ポート: - 80:80 -443:443 -4443:4443 依存: -MySQLについて - レジストリ - ユーアイ -ログ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: 「プロキシ」 ネットワーク: 港: 外部: 偽 [root@liumiao 港]# 注: カスタムポート番号 前の記事の例では、デフォルトのポート 80 を港のポートとして使用しています。これを変更したい場合 (たとえば、8848 に変更したい場合) は、以下の手順に従って変更してください。 コンテンツの設定 港湾設定項目の詳細情報は、データベースのプロパティまたはapi/systeminfoで確認できます。 プロパティ [root@liumiao harbor]# docker exec -it harbor-db sh sh-4.3#mysql -uroot -pliumiaopw MariaDB モニターへようこそ。コマンドは ; または \g で終わります。 MariaDB接続IDは153です サーバーバージョン: 10.2.14-MariaDB ソース配布 Copyright (c) 2000、2018、Oracle、MariaDB Corporation Ab およびその他。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 MariaDB [(なし)]> レジストリを使用する テーブル名と列名の補完のためのテーブル情報の読み取り -Aでこの機能をオフにすると起動が速くなります。 データベースが変更されました MariaDB [レジストリ]> プロパティから * を選択します。 +----+--------------------------------+------------------------------------------------+ | id | k | v | +----+--------------------------------+------------------------------------------------+ | 1 | cfg_expiration | 5 | | 2 | プロジェクト作成制限 | 全員 | | 3 | uaa_client_secret | <enc-v1>cBvRPcG+p3oNVnJh8VM+SjvlcEsKYg== | | 4 | clair_db_host | postgres | | 5 | トークンサービス URL | http://ui:8080/service/token | | 6 | mysql_password | <enc-v1>HDqd+PbHcG9EWK9DF3RzM43fTtPvCjdvyQ== | | 7 | uaa_endpoint | uaa.mydomain.org | | 8 | 最大ジョブワーカー数 | 50 | | 9 | sqlite_file | | | 10 | email_from | admin <[email protected]> | | 11 | ldap_base_dn | ou=people、dc=mydomain、dc=com | | 12 | clair_db_port | 5432 | | 13 | mysql_port | 3306 | | 14 | ldap_search_dn | | | 15 | clair_db_username | postgres | | 16 | 電子メールが安全でない | 偽 | | 17 | データベースタイプ | mysql | | 18 | ldap_filter | | | 19 | 公証人付き | 偽 | | 20 | 管理者初期パスワード | <enc-v1>4ZEvd/GfBYSdF9I6PfeI/XIvfGhPITaD3w== | | 21 | notary_url | http://notary-server:4443 | | 22 | 認証モード | db_auth | | 23 | ldap_group_search_scope | 2 | | 24 | ldap_uid | uid | | 25 | email_username | [email protected] | | 26 | mysql_database | レジストリ | | 27 | リロードキー | | | 28 | clair_url | http://clair:6060 | | 29 | ldap_group_search_filter | オブジェクトクラス=グループ | | 30 | メールアドレスパスワード | <enc-v1>h18ptbUM5oJwtKOzjJ4X5LOiPw== | | 31 | email_ssl | 偽 | | 32 | ldap_timeout | 5 | | 33 | uaa_client_id | ID | | 34 | レジストリ ストレージ プロバイダー名 | ファイルシステム | | 35 | 自己登録 | true | | 36 | 電子メールポート | 25 | | 37 | ui_url | http://ui:8080 | | 38 | トークン有効期限 | 30 | | 39 | 電子メール ID | | | 40 | clair_db | postgres | | 41 | uaa_verify_cert | 真 | | 42 | ldap_verify_cert | 真 | | 43 | ldap_group_attribute_name | cn | | 44 | mysql_host | mysql | | 45 | 読み取り専用 | 偽 | | 46 | ldap_url | ldaps://ldap.mydomain.com | | 47 | 外部エンドポイント | http://192.168.163.128 | | 48 | ldap_group_base_dn | ou=グループ、dc=mydomain、dc=com | | 49 | with_clair | 偽 | | 50 | admiral_url | NA | | 51 | ldap_scope | 2 | | 52 | レジストリ URL | http://registry:5000 | | 53 | ジョブサービス URL | http://jobservice:8080 | | 54 | 電子メールホスト | smtp.mydomain.com | | 55 | ldap_search_password | <enc-v1>F2QZkeEPTQPsJ9KNsBWcXA== | | 56 | mysql_username | ルート | | 57 | clair_db_password | <enc-v1>IGBg3NxvT7qCYGIB+zizax+GojoM7ao2VQ== | +----+--------------------------------+------------------------------------------------+ セット内の行数は 57 です (0.00 秒) MariaDB [レジストリ]> API/システム情報 [root@liumiao harbor]# curl http://localhost/api/systeminfo { "with_notary": false, "with_clair": 偽、 "with_admiral": false, "admiral_endpoint": "NA", "auth_mode": "db_auth", "レジストリURL": "192.168.163.128", "プロジェクト作成制限": "全員", 「自己登録」:true、 "has_ca_root": 偽、 "ハーバーバージョン": "v1.5.2-8e61deae", "次のスキャンすべて": 0, "registry_storage_provider_name": "ファイルシステム", "読み取り専用": 偽 }[root@liumiao 港]# 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: メモリ構成が過剰でMySQLが起動できない問題の解決方法
>>: Vue でメニュー権限制御を実装するためのサンプルコード
ダウンロードしたバージョンは、Zip 解凍版、Windows システムです。長い間 Windows ...
Syn 攻撃は、最も一般的で最も簡単に悪用される攻撃方法です。TCP プロトコルの欠陥を利用して、偽...
背景最近、複数のプロジェクトを展開する際に、1 つのドメイン名で複数のプロジェクトにアクセスする方法...
目次1. はじめに1.1 Babel トランスコーダ1.2 ポリフィル2. let と const ...
これは、Web ページを Windows のスタート メニューなどのデスクトップ プログラムのように...
この記事の例では、vueシャトルボックスを上下に動かすための具体的なコードを参考までに共有しています...
この記事では、Navicatを使用してcsvデータをmysqlにインポートする方法を参考までに紹介し...
docker を使用すると、ファイルをマウントできない場合があります。これは、仮想マシンの共有フォル...
目次序文1. カプセル化の重要性2. どのようにカプセル化しますか? 1. 準備2. 梱包を開始する...
この記事では、例を使用して、MySQL で複数のトリガー操作を作成する方法について説明します。ご参考...
目次クエリキャッシュの最適化概要クエリプロセスクエリキャッシュ構成クエリキャッシュの無効化メモリ管理...
npx 使用チュートリアル今晩、 Vue-Cli勉強していたところ、ふと最新の@4.xxバージョンを...
目次単一ノード差分単一要素を調整するマルチノード差分調整子配列ノードが移動したかどうかを判断するには...
目次1. 概要2. dockerを使用してTomcatをデプロイし、Skywalkingに接続する要...
縦型テーブル垂直テーブル分割とは、多数の列を持つテーブルを複数のテーブルに分割することを意味します。...