harbor
安裝docker(參照之前k8s中安裝dokcer)
安裝docker-compose
下載docker-compose-Linux-x86_64,並上傳至/usr/local/bin/下,下載地址https://github.com/docker/compose/releases
#mv docker-compose-Linux-x86_64 docker-compose
#chmod +x docker-compose
#docker-compose -version
安裝cfssl
#curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl
#curl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson
#curl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo
#chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson /usr/local/bin/cfssl-certinfo #準備cfssl
生成證書文件
#mkdir -p /opt/ssl
#cat > harbor-csr.json <<EOF # 創建 harbor 證書籤名請求
{
"CN": "harbor",
"hosts": [
"127.0.0.1",
"192.168.201.49", #harbor master服務器
"192.168.201.59", #以後準備創建的harbor slave服務器,現在沒有,但是提前寫入證書避免後面重新生成
"registry.k8s.yayun.com" #指定harbor的域名
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "BeiJing",
"L": "BeiJing",
"O": "k8s",
"OU": "4Paradigm"
}
]
}
EOF
#scp ca-key.pem ca.pem ca-config.json root@ip:/opt/ssl # 將k8s中master的ca證書及ca-json複製到harbor中,用於簽名
#cfssl gencert -ca=/opt/ssl/ca.pem -ca-key=/opt/ssl/ca-key.pem -config=/opt/ssl/ca-config.json -profile=kubernetes harbor-csr.json | cfssljson -bare harbor # 簽署證書
#ls
ca-config.json ca-key.pem ca.pem harbor.csr harbor-csr.json harbor-key.pem harbor.pem
安裝harbor
#tar -xvf harbor-offline-installer-v1.10.3-rc2.tgz #下載harbor離線包,https://github.com/goharbor/harbor/releases
#vi /opt/harbor/harbor.yml
hostname: registry.k8s.yayun.com
certificate: /opt/ssl/ca.pem
private_key: /opt/ssl/ca-key.pem
#/opt/harbor/prepare #根據配置文件生成所需文件
#/opt/harbor/install
#systemctl restart docker
驗證
瀏覽器直接訪問https://ip,並使用admin,Harbor12345訪問
node節點
不配置證書方式(不配置證書與配置證書選一種)
#mkdir -p /etc/docker/certs.d/registry.k8s.yayun.com #新建目錄
#vi /etc/docker/daemon.json
{
"insecure-registries": ["registry.k8s.yayun.com"] #填入配置的harbor域名
}
#systemctl daemon-reload
#systemctl restart dockerd
#vi /etc/hosts
192.168.201.49 registry.k8s.yayun.com #在hosts中添加域名
配置證書方式(不配置證書與配置證書選一種)
#mkdir -p /etc/docker/certs.d/registry.k8s.yayun.com #新建目錄
#scp ca.pem [email protected]:/etc/docker/certs.d/registry.k8s.yayun.com/ca.crt #將harbor上的ca根證書複製node節點並修改名稱
#update-ca-trust #更新證書
#systemctl restart dockerd
#vi /etc/hosts
192.168.201.49 registry.k8s.yayun.com #在hosts中添加域名
harbor使用驗證
#docker login -u admin -p Harbor12345 registry.k8s.yayun.com #登錄
#docker images #查看本地鏡像
#docker tag nginx:latest registry.k8s.yayun.com/library/nginx:v1 #對本地鏡像打標籤,其中library是harbor默認的項目
#docker push registry.k8s.yayun.com/library/nginx:v1 #將鏡像推送到harbor上
知識點1:
Compose 是用於定義和運行多容器 Docker 應用程序的工具。通過 Compose,您可以使用 YML 文件來配置應用程序需要的所有服務。然後,使用一個命令,就可以從 YML 文件配置中創建並啓動所有服務。
知識點2:
harbor已安裝,修改了harbor.yml配置文件的,需要
./prepare #更新配置
docker-compose up -d #啓動harbor ,另外 docker-compose down -v #關閉harbor服務
知識點3:
Harbor docker login x509 certificate signed by unknown authority
未配置Insecure Registry
知識點4:
關閉了防火牆後,無法正常啓動harbor
知識點5:
cfssl在拉取安裝時報截圖中錯誤,主要原因是時間問題
知識點6:
快速查找文件中字符串
知識點7:
重啓docker-compose時報錯Can’t find a suitable configuration file xxxx。
需要進入到harbor解壓的目錄下執行即可。