マイクロサービスとクラウド ネイティブ: Harbor プライベート ミラー ウェアハウスの構築

ハーバー公式サイト

記事の前に記載:この記事で使用されているマシンはすべて仮想マシン CentOS-7-x86_64-Minimal-2009 イメージです。

インフラストラクチャ要件

ここに画像の説明を挿入
仮想マシンの構成は最小要件を満たしており、本システムでは docker 24.0.4 と docker-compose 1.29.2 を使用しています。docker と docker-compose のインストールについては、以前の記事「Microservices & Cloud Native: Basic Preparations in Building a K8S Cluster 」を参照してください

ダウンロードハーバー

公式のインストール方法には、オンライン (オンライン インストーラー) とオフライン (オフライン インストーラー) の 2 つの方法があります。ここではオフライン インストール パッケージをインストールすることをお勧めします。https: //github.com/goharbor/harbor/tagsで対応するバージョンを選択してダウンロードしてくださいここでは、v2 .8.3 バージョン、つまり、harbor-offline-installer-v2.8.3.tgz を選択します。
ここに画像の説明を挿入

# 下载
wget -c https://github.com/goharbor/harbor/releases/download/v2.8.3/harbor-offline-installer-v2.8.3.tgz

# 解压
tar xzvf harbor-offline-installer-v2.8.3.tgz

解凍されたファイルのリストが表示されます。
ここに画像の説明を挿入

CA証明書を生成する

ローカル ドメイン名の IP マッピングを追加します。ハーバーをインストールしたマシンの IP アドレスは 192.168.65.134 です。

vim /etc/hosts

# 添加 ip 与自定义域名映射,域名可以随便设置
192.168.65.134 harbor.kubemanagement.com

新しい証明書フォルダーを作成します。

mkdir certs

ここに画像の説明を挿入

CAの生成

# 1.
cd certs
openssl genrsa -out ca.key 4096
# 2. 注意这里域名用上面设置的,比如 harbor.kubemanagement.com
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.kubemanagement.com" \
 -key ca.key \
 -out ca.crt
# 3. 
openssl genrsa -out harbor.kubemanagement.com.key 4096
# 4. 
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.kubemanagement.com.com" \
    -key harbor.kubemanagement.com.key \
    -out harbor.kubemanagement.com.csr
# 5.
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=harbor.kubemanagement.com
DNS.2=yourdomain
DNS.3=hostname
EOF 
# 6. 
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in harbor.kubemanagement.com.csr \
    -out harbor.kubemanagement.com.crt
# 7. 
mkdir -p /data/cert/

cp harbor.kubemanagement.com.crt /data/cert/
cp harbor.kubemanagement.com.key /data/cert/
# 8.
openssl x509 -inform PEM -in harbor.kubemanagement.com.crt -out harbor.kubemanagement.com.cert
# 9.
mkdir -p /etc/docker/certs.d/harbor.kubemanagement.com/

cp harbor.kubemanagement.com.cert /etc/docker/certs.d/harbor.kubemanagement.com/
cp harbor.kubemanagement.com.key /etc/docker/certs.d/harbor.kubemanagement.com/
cp ca.crt /etc/docker/certs.d/harbor.kubemanagement.com/
# 10.
systemctl restart docker

Harbor の構成とインストール

# 进入解压目录,如果目录里有 harbor.yml 就直接修改,我这里只有 harbor.yml.tmpl
cd harbor
cp harbor.yml.tmpl harbor.yml

vim harbor.yml

主に次の点に注意してください。カスタム ドメイン名、CA が保存されている場所、デフォルトのログイン パスワードです。変更後、
ここに画像の説明を挿入
直接インストール スクリプトを実行します。

./install.sh

ここに画像の説明を挿入
インストールが成功した後のプロンプト:
ここに画像の説明を挿入
docker-compose を使用して実行ステータスを確認します。

docker-compose ps

ここに画像の説明を挿入
問題がなければ、すべて健康な状態です。

テスト

ブラウザにドメイン名または IP を入力すると、次のインターフェイスが表示されます。デフォルトのユーザー名は admin で、パスワードは Harbor.yml ファイルに設定されます。 システムにログインした後、新しいプライベート プロジェクト kubemanagment を作成し
ここに画像の説明を挿入
ます
ここに画像の説明を挿入
ここに画像の説明を挿入
。 、イメージのアップロードをテストできます。最初に (必ず) docker にログインします。

docker login harbor.kubemanagement.com

ここに画像の説明を挿入
Harbor の要件に従って、画像をマークしてプッシュします。
ここに画像の説明を挿入
ここでは例としてビジーボックス画像を取り上げます。

# 1. 拉取 busybox 镜像
docker pull busybox
# 2. tag
docker tag busy:latest harbor.kubemanagement.com/kubemanagment/busybox:latest
# 3. push
docker push harbor.kubemanagement.com/kubemanagment/busybox:latest

この時点で、kubemanagment/busybox がすでに存在していることが Web ページで確認できます。
ここに画像の説明を挿入
ここで、Harbor の基本的なインストールと構成が完了しています。

上記の kubemanagment/mysql と同様に、k8s クラスター環境でハーバープッシュをテストします。具体的なプロセスは次のとおりです。

基本的な k8s クラスター環境はマイクロサービスおよびクラウドネイティブです。K8S クラスターを構築するには、簡単にするために、ここには 1 つのマスター ノードと 1 つのワーカー ノードのみが含まれています。マスターノードのIP情報は次のとおりです。

ip: 192.168.65.130

マスターのホストへのマッピングを追加します。

vim /etc/hosts
192.168.65.134 harbor.kubemanagement.com

イメージをマスター ノードにプッシュするには、docker login harbor.kubemanagement.com直接ログインすることはできず、エラーが報告されます。
ここに画像の説明を挿入
ハーバーが配置されているマシン上の CA 情報をマスター ノードにコピーする必要があります。

# 在 master主机上
cd /etc/docker/

# 192.168.65.134 为 harbor 所在主机
scp -r [email protected]:/etc/docker/certs.d .

ここに画像の説明を挿入
次に、docker を再起動します。

systemctl restart docker

それから

# 这里的 mysql:8.0.23 是我 master 节点中以前就 pull 好的镜像
docker login harbor.kubemanagement.com
docker tag mysql:8.0.23 harbor.kubemanagement.com/kubemanagment/mysql:8.0.23
docker push harbor.kubemanagement.com/kubemanagment/mysql:8.0.23

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/by6671715/article/details/132137459