Habor是由VMWare中國團隊開源的容器鏡像倉庫。事實上,Habor是在Docker Registry上進行了相應的企業級擴展,從而得到了更加普遍的應用,這些新的企業級特性包括:管理用戶界面,基於角色的訪問控制 ,水平擴展,同步,AD/LDAP集成以及審計日誌等linux
一. 手動部署git
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose chmod +x /usr/local/bin/docker-compose
wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.2.tgz tar zxf harbor-offline-installer-v1.6.2.tgz
# mkdir /etc/pki/ca_test //建立CA更證書的目錄 # cd /etc/pki/ca_test # mkdir root server client newcerts //建立幾個相關的目錄 # echo 01 > serial //定義序列號爲01 # echo 01 > crlnumber //定義crl號爲01 # touch index.txt //建立index.txt # cd .. # vi tls/openssl.cnf //改配置文件 default_ca = CA_default 改成 default_ca = CA_test [ CA_default ] 改成 [ CA_test ] dir = /etc/pki/CA 改成 dir = /etc/pki/ca_test certificate = $dir/cacert.pem 改成 certificate = $dir/root/ca.crt private_key = $dir/private/cakey.pe 改成 private_key = $dir/root/ca.key # openssl genrsa -out /etc/pki/ca_test/root/ca.key //生成私鑰 # openssl req -new -key /etc/pki/ca_test/root/ca.key -out /etc/pki/ca_test/root/ca.csr //生成請求文件,會讓咱們填寫一些指標,這裏要注意:若是在這一步填寫了相應的指標, 好比Country Name、State or Province Name、hostname。 # openssl x509 -req -days 3650 -in /etc/pki/ca_test/root/ca.csr -signkey /etc/pki/ca_test/root/ca.key -out /etc/pki/ca_test/root/ca.crt //生成crt文件
# cd /etc/pki/ca_test/server # openssl genrsa -out server.key //生成私鑰文件 # openssl req -new -key server.key -out server.csr//生成證書請求文件,填寫信息須要和ca.csr中的Organization Name保持一致 # openssl ca -in server.csr -cert /etc/pki/ca_test/root/ca.crt -keyfile /etc/pki/ca_test/root/ca.key -out server.crt -days 3650 //用根證書籤名server.csr,最後生成公鑰文件server.crt,此步驟會有兩個地方須要輸入y Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
若是作ssl的雙向認證,還須要給客戶端生成一個證書,步驟和上面的基本一致 # cd /etc/pki/ca_test/client # openssl genrsa -out client.key //生成私鑰文件 # openssl req -new -key client.key -out client.csr //生成請求文件,填寫信息須要和ca.csr中的Organization Name保持一致 # openssl ca -in client.csr -cert /etc/pki/ca_test/root/ca.crt -keyfile /etc/pki/ca_test/root/ca.key -out client.crt -days 3650 //簽名client.csr, 生成client.crt,此步若是出現 failed to update database TXT_DB error number 2 需執行: # sed -i 's/unique_subject = yes/unique_subject = no/' /etc/pki/ca_test/index.txt.attr 執行完,再次重複執行簽名client.csr那個操做
這兩個網址和騰訊雲都提供免費的ssl服務github
https://freessl.org/
https://www.trustocean.com/docker
# cd harbor 編輯配置文件 # vim harbor.cfg 1)定義hostname(如 harbor.yuankeedu.com) 2)定義ui_url_protocol爲https 3)定義ssl_cert/ssl_key 放置好ssl證書,修改路徑 4)定義harbor_admin_password 安裝 # sh install.sh //自動安裝完成
修改後:vim
hostname = h.uedu.ml ui_url_protocol = https max_job_workers = 10 customize_crt = on ssl_cert = /root/harbor/START-uedu-ml.pem ssl_cert_key = /root/harbor/START-uedu-ml.key secretkey_path = /data admiral_url = NA log_rotate_count = 50 log_rotate_size = 200M http_proxy = https_proxy = no_proxy = 127.0.0.1,localhost,ui,registry
訪問api
https://h.uedu.ml/
admin 默認密碼爲 Harbor12345tomcat
拉取公共鏡像bash
docker pull tomcat
docker tag tomcat h.uedu.ml/aikerlinux/tomcat:latest //打標籤爲上傳作準備curl
把tomcat鏡像推送到harboride
docker login https://h.uedu.ml
輸入用戶名和密碼
docker push h.uedu.ml/aikerlinux/tomcat:latest
如下操做在master上執行:
1)建立secret
kubectl create secret docker-registry my-secret --docker-server=h.uedu.ml --docker-username=admin --docker-password=Harbor12345
建立完成後,能夠用如下命令查看:
# kubectl get secret
2)定義一個pod 首先,須要在harbo私有倉庫裏推送一個httpd的鏡像
,地址爲h.uedu.ml/aikerlinux/httpd:latest
docker pull httpd docker tag httpd h.uedu.ml/aikerlinux/httpd:latest docker login https://h.uedu.ml docker push h.uedu.ml/aikerlinux/httpd:latest
而後再定義一個部署http pod的yaml文件
[root@master ~]# vim httpd.yaml apiVersion: v1 kind: Pod metadata: name: httpd-pod spec: containers: - image: h.uedu.ml/aikerlinux/httpd name: httpd-pod imagePullSecrets: - name: my-secret
# kubectl create -f httpd.yaml # kubectl describe pod httpd-pod //查看pod建立過程的信息,可能會存在的問題