安裝docker:yum -y install yum-utils device-mapper-persistent-data lvm2
配置一個穩定的倉庫,倉庫配置會保存到/etc/yum.repos.d/docker-ce.repo文件中
更新yum安裝的相關Docker軟件包&安裝docker:yum update -y && yum install docker-ce
查看docker版本:docker -v
安裝docker-compose到 /usr/local/bin目錄(在該目錄下不需要配置環境變量):curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
賦權:chmod 755 /usr/local/bin/docker-compose
查看docker-compose版本:docker-compose -v
啟動docker並設置開機啟動:systemctl enable docker && systemctl start docker
追加私有倉庫域名到各個服務器:echo "192.168.124.22 hub.menglong.com" >> /etc/hosts
驗證追加成功:cat /etc/host
將集群的各個node節點的映射也配置到各個服務器(K8S集群+鏡像倉庫)的hosts中,加載hostname:hostnamectl set-hostname hub.menglong.com,驗證:hostname
在windows上也做個設置
下載harbor:wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.2.0.tgz
移動到/usr/local/src/下
解壓:tar -zxvf harbor-offline-installer-v1.2.0.tgz
修改配置文件: vi harbor/harbor.cfg
修改以下內容
# 可以是IP或着域名,但是不能使用127.0.0.1和localhost hostname = hub.menglong.com # 協議用https ui_url_protocol = https
根據harbor.cfg中配置的證書存放目錄(ssl_cert配置的目錄):mkdir -p /data/cert/
進入存放證書目錄,開始創建證書(偽證書):
#首先生成證書私鑰(這里會讓輸入key,直接輸入即可,我輸入的是menglong) openssl genrsa -des3 -out server.key 2048 #證書的服務 openssl req -new -key server.key -out server.csr #備份私鑰 cp server.key server.key.org #轉換為證書 openssl rsa -in server.key.org -out server.key #給證書簽名 openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
給所有的證書授權:chmod 755 *
給K8S集群的每個節點配置鏡像倉庫地址(vi /etc/docker/daemon.json):"insecure-registries": ["https://hub.menglong.com"]
重啟docker:systemctl daemon-reload && systemctl restart docker
在K8S中登錄鏡像倉庫:docker login https://hub.menglong.com
打鏡像:docker tag lcl-galaxy-k8s:v2.0 hub.menglong.com/lcl-galaxy/lcl-galaxy-k8s:1.0
推送鏡像:docker push hub.menglong.com/lcl-galaxy/lcl-galaxy-k8s:1.0
刪除本地鏡像(強制刪除):docker rmi -f c2d136b74fdd
驗證拉取是否成功:docker pull hub.menglong.com/lcl-galaxy
從私服中拉取鏡像運行一個pod:kubectl run lcl-galaxy-k8s --image=hub.menglong.com/lcl-galaxy/lcl-galaxy-k8s:1.0 --port=8080
獲取pod詳細信息:kubectl get pod -o wide
訪問pod:curl 10.244.2.26:8080/k8s/test1