搭建harbor給k8s 使用

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解壓的目錄下執行即可。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章