Kubernetesシリーズのエンタープライズクラスの高可用性ミラーリング構成リポジトリハーバー

A、ハーバーはじめに

1.Harborはじめに

ハーバーエンタープライズレジストリはドッカーは、このようなセキュリティ、ID管理など、いくつかの企業のために必要な機能を追加することにより、ミラーリング、およびオープンソースドッカー配布を拡張格納して配布するためのサーバです。民間企業のサーバーのレジストリとして、ハーバーは、より良いパフォーマンスとセキュリティを提供します。レジストリのユーザービルドと透過像のランタイム環境の効率を高めます。ノードのサポート複製へハーバーミラーリソースは、企業の内部ネットワークの管理と制御データや知的財産を確保するため、民間のレジストリに保存されているすべてのミラーリング、複数のレジストリにインストールされています。また、ハーバーにも、このようなユーザー管理、アクセス制御、監査活動などの高度なセキュリティ機能を提供します。

2.Harborプロパティ

  • 役割ベースのアクセス制御:「プロジェクト」を介して、組織と管理とユーザドッカーミラー・リポジトリは、ユーザが同じネームスペース(プロジェクト)内の複数のミラー倉庫異なるアクセス権を有することができます。
  • ミラーリング:インスタンスレジストリの複数箇所(同期)の複製をミラーリング。負荷分散、高可用性、およびハイブリッドクラウド曇りのシーンのために特に適しています。
  • グラフィカルユーザーインターフェイス:ユーザーは、ブラウザを介して閲覧するカレントミラードッカー倉庫を取得し、プロジェクトおよび名前空間を管理することができます。
  • AD / LDAPサポート:ハーバーは、認証と承認の管理のために、企業の既存のAD / LDAP内に統合することができます。
  • 監査管理:ミラーリポジトリ上のすべての操作は、監査管理のために遡って記録することができます。
  • 国際:英語、中国語、ドイツ語、日本語、ロシア語、すでにローカライズされたバージョン。より多くの言語が追加されます。
  • RESTfulなAPI:より多くの制御のための管理者の港に提供するRESTfulなAPI、およびその他の管理ソフトウェアの統合は、それが容易になります。
  • 展開は単純です:オンラインとオフラインの両方のツールがインストールされ、あなたは、vSphereプラットフォーム(OVAの道)の仮想デバイスをインストールすることができます提供します。

3.Harborコンポーネント

ハーバーは、主にアーキテクチャの6つのコンポーネントで構成されています。

  • プロキシ:リバースプロキシブラウザ、ドッカークライアントの要求とバックエンド異なるサービスに転送要求を受信するための統一戦線通じハーバーのレジストリ、UI、トークンやその他のサービスを提供しています。

  • レジストリ:画像を保存し、ドッキングウィンドウのプッシュ/プルコマンドを処理するためのドッカー責任を負います。我々は、異なるユーザが異なる読み取りおよびドッカーイメージへの書き込みアクセス権を持っている、レジストリがトークンサービスを指しますユーザーのアクセス制御を、したいので、ドッキングウィンドウプッシュ/プルリクエストごとの固定ユーザーは、有効なトークンを運ぶ必要があり、レジストリが通過しますトークンの検証を復号化するための公開鍵。

  • コアサービス:これは、コア機能ハーバー、申し出以下のサービスです。

  • UI:グラフィカル・ユーザー管理レジストリのヘルプイメージ(画像)へのインタフェース、およびユーザー認証を提供します。

  • ウェブフック:ウェブフックレジストリ上に配置されたレジストリ画像状態変化へのタイムリーなアクセスは、状態変化がUIモジュールに伝送されます。

  • トークンサービス:各ドッキングウィンドウのプッシュ/プルドッカーコマンドの責任は、ユーザーの権限に基づいてRegiøstryサービスへのクライアントによって開始されたトークン要求を発行し、あなたがトークン含まれていない場合は、ここにリダイレクトされ、その後、レジストリにトークン要求を再取得。..

  • データベースは:、コアサービスにデータベースサービスを提供するユーザの権限、監査ログ、ドッカー画像グルーピング情報及び他のデータを格納するための責任があります。

  • ジョブサービス:リモートレプリケーション機能をミラーリング提供は、ローカルミラー他のインスタンスハーバーに同期させることができます。

  • ログ収集:ヘルプモニターハーバー操作に、後で分析するために、ログの他のコンポーネントを収集するための責任があります。

以下のように様々な構成要素間の関係:
ここに画像を挿入説明

第二に、インストールと構成のハーバー

1、環境の準備

CentOS Linux release 7.3.1611 (Core)
docker-ce-18.06.1
docker-compose version 1.21.2, build a133471
harbor-v1.8.0

2、インストールドッカ

# 使用阿里云镜像仓库
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
# 安装docker
yum install -y docker-ce-18.06.1.ce-3   #可能找不到安装包
yum -y install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.3.ce-3.el7.x86_64.rpm

# 设置docker启动参数(可选)
#  graph: 设置docker数据目录:选择比较大的分区(我这里是根目录就不需要配置了,默认为/var/lib/docker)
#  exec-opts: 设置cgroup driver(默认是cgroupfs,不推荐设置systemd)
#  insecure-registries:设置私有仓库

cat > /etc/docker/daemon.json <<EOF
{
    "graph": "/data/docker",
    "exec-opts": ["native.cgroupdriver=cgroupfs"],
    "insecure-registries": ["http://192.168.101.11"]
}
EOF

# 启动docker服务并加入开机启动项
systemctl start docker && systemctl enable docker

図3に示すように、取付ドッカー-COMPOSE

curl -L https://mirrors.aliyun.com/docker-toolbox/linux/compose/1.21.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
 chmod +x /usr/local/bin/docker-compose
 # docker-compose --version
docker-compose version 1.21.2, build a133471

4、港のインストール

1、下周安装包
# wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.1.tgz

2、解压并修改配置文件
# tar xf harbor-offline-installer-v1.8.1.tgz -C /usr/local
# cd /usr/local/harbor

node1上
# vim harbor.yml
hostname: 192.168.101.11

node2上
# vim harbor.yml
hostname: 192.168.101.12

3、执行安装脚本
# ./install.sh

✔ ----Harbor has been installed and started successfully.----   #看到这一行就表示成功了

Now you should be able to visit the admin portal at http://192.168.101.12.
For more details, please visit https://github.com/goharbor/harbor .

4、启动和停止
# docker-compose up -d  #启动
# docker-compose down  #停止

5、テストアクセス
ここに画像を挿入説明

第三に、テストアップロードと同期設定

1、下周镜像并提交
# docker pull centos:7.6.1810
# docker push 192.168.101.11/open/centos:7.6.1810
The push refers to repository [192.168.101.11/open/centos]
89169d87dbe2: Pushed
7.6.1810: digest: sha256:747b2de199b6197a26eb1a24d69740d25483995842b2d2f75824095e9d1d19eb size: 529

2、ページのテストをご覧ください。

ここに画像を挿入説明
図3に示すように、ターゲットホスト設け
ここに画像を挿入説明
同期ルールセット4、
ここに画像を挿入説明
ピア同期完了か否かを確認する5、
ここに画像を挿入説明
6は、このステップは、別のサーバ上で繰り返されます

第四に、高可用性を確認し、テストします

1、安装nginx
# yum -y install nginx

2、配置负载均衡
# cat hub.huoban.com.conf
upstream huoban_hub {
     server 192.168.101.11:80 max_fails=3 fail_timeout=10s;
     server 192.168.101.12:80 max_fails=3 fail_timeout=10s;
     ip_hash;
}

server {
    listen 80;
    server_name hub.huoban.com;
    rewrite ^(.*)$  https://hub.huoban.com$1 permanent;
}

server {
    listen 443 ssl;
    server_name hub.huoban.com;
    server_tokens off;
    #proxy_set_header           Host $host;   #这一行不能要。加了之后会报错
    proxy_set_header           X-Real-IP $remote_addr;
    proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
    location / {
        proxy_pass      http://huoban_hub;
    }
    access_log /data/logs/nginx/${host}_access.log combined;
}

3、テストアクセス
ここに画像を挿入説明
4、摺動ミラー試験

# docker tag centos:7.6.1810 hub.huoban.com/open/centos:7.6.18101
# docker push hub.huoban.com/open/centos:7.6.18101
The push refers to repository [hub.huoban.com/open/centos]
89169d87dbe2: Preparing
denied: requested access to the resource is denied
# docker login hub.huoban.com
Username: admin
Password:
Login Succeeded
# docker push hub.huoban.com/open/centos:7.6.18101
The push refers to repository [hub.huoban.com/open/centos]
89169d87dbe2: Layer already exists
7.6.18101: digest: sha256:747b2de199b6197a26eb1a24d69740d25483995842b2d2f75824095e9d1d19eb size: 529
# # docker pull hub.huoban.com/open/centos:7.6.18101
Trying to pull repository hub.huoban.com/open/centos ...
7.6.18101: Pulling from hub.huoban.com/open/centos
ac9208207ada: Pull complete
Digest: sha256:747b2de199b6197a26eb1a24d69740d25483995842b2d2f75824095e9d1d19eb
Status: Downloaded newer image for hub.huoban.com/open/centos:7.6.18101

おすすめ

転載: blog.51cto.com/79076431/2474102